当前位置: 首页 > 知识库问答 >
问题:

ContentSearch查询中的可选术语

毛德华
2023-03-14

我试图通过Sitecore ContentSearch构建一个包含可选词的lucene查询。可选项用于提高某些结果。lucene查询应该如下所示:

+(+(_content:myquery keywords:myquery) boostfield:boostdata)
var contentPredicate = PredicateBuilder.Create<MySearchResultItem>(p => p.Content == parameters.QueryString);

contentPredicate = contentPredicate.Or(k => k.Keywords == "myquery");

mainPredicate = mainPredicate.And(contentPredicate);

mainPredicate = mainPredicate.And(f => f["boostfield"] == "boostdata");
+(+(_content:myquery keywords:myquery) +boostfield:boostdata)

共有1个答案

咸弘雅
2023-03-14

试试看:

var contentPredicate = PredicateBuilder.Create<MySearchResultItem>(p => p.Content == parameters.QueryString);

contentPredicate = contentPredicate.Or(k => k.Keywords == "myquery");

mainPredicate = mainPredicate.And(contentPredicate);

var boostQuery = PredicateBuilder.False<MySearchResultItem>();
boostQuery = boostQuery.Or(f => f["boostfield"] == "boostdata");

mainPredicate = mainPredicate.Or(boostQuery)

我想它能给你带来你需要的结果。

 类似资料:
  • 我不明白 FastAPI 中的可选查询参数。它与默认值为 的默认查询参数有何不同? 在下面的示例中,arg1和arg2有什么区别?在该示例中,arg2是一个可选的查询参数,如上面的链接所述。

  • 问题内容: 我想在存储库层中编写一些查询方法。此方法必须忽略空参数。例如: 在这种情况下,此方法必须返回Foo: 如果gooParam不为null。如果gooParam为null,则条件更改为: 有什么解决办法吗?有人能帮我吗? 问题答案: 来不及了。不确定 Bar 和 Goo 之间的关系。检查 Example是否 可以帮助您。 它为我工作。我有一个类似的情况,实体 用户 具有属性集,并且有基于属

  • 问题内容: 我有以下 匹配 查询字符串: 我想它的意思是,但实际上它能执行。 然后我尝试了 术语 查询字符串: 它执行,显示 术语 查询通过数组支持多个OR条件。 我很好奇为什么 匹配 查询不支持通过数组的 OR 条件?并且它不显示任何语法错误。 问题答案: 该查询仅支持要指定的单个字符串值。官方文档中没有明确指定它,但是如果您愿意阅读的源代码,则可以看到,在解析字段时,解析器将跳过标记来分隔数组

  • 问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将