AND/OR & 最小应与 Solr 中的 edismax 查询匹配

AND/OR & Minimum Should Match with edismax query in Solr

我已将 Solr 集成到电子商务站点中。现在我想在我的搜索关键字之间的 Edismax 搜索查询中使用运算符 AND/OR。如果我使用 AND 运算符,我想像 Ankita AND Patel 那样查询,如果我使用 OR 运算符,那么它会像:Ankita OR Patel

Please note I have implemented minimum should match.

如何在 Solr 中使用运算符执行查询?它会影响最小应匹配值的结果吗?

之前我在搜索关键字之间添加运算符然后传递以下查询:

 results = solrCustomWorker.Query(new SolrQuery(keyword), options);

但它不会按照运算符值工作。对于任何具有相同 mm 值的运算符,它都会给出相同的结果。例如,如果 mm= 50%,则两个运算符的结果相同。

我该怎么做?谢谢

mm 用于处理一系列术语,其中 mm 参数告诉 Solr 有多少术语必须匹配,具体取决于给定的参数。这意味着任何布尔运算符都没有真正意义,因为它意味着可以处理一般的自由格式输入。

如果您需要在与使用 mm 相同的上下文中表达 "this field has to match",请使用过滤器查询 fq 来过滤匹配文档列表。

最小应匹配,即 MM 仅适用于没有运算符传递到搜索查询的 Solr 搜索查询。如果将任何运算符 (AND/OR) 传递给 Solr 搜索查询,在这种情况下,mm 的值无关紧要,不会影响结果。因此,您可以将运算符定义到搜索查询中,或者让它未定义并使用最小值应该匹配。

此外,最好使用 minimum should match,因为您可以定义搜索短语中应匹配的单词数,尤其是对于较长的短语,这在使用运算符时是不可能的。

我对 minimum should match 有同样的问题 - 它会干扰布尔运算符。

我发现的唯一解决方法是用括号对术语进行分组: (Ankita OR Patel) 应该按预期工作,因为该组被计为一个学期。