和/或&最小值应与Solr中的edismax查询匹配

时间:2016-02-24 11:29:18

标签: solr solrnet

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

  

请注意我已实施最低匹配。

如何使用运算符对Solr执行查询?是否会影响最小匹配值的结果?

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

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

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

我该怎么做?感谢。

3 个答案:

答案 0 :(得分:3)

<form name='fred' novalidate='novalidate' ng-submit='submitFunc()'> <input name='username' required='required' pattern='a-z'> <input type='email'> <input type='submit' ng-disabled='fred.$invalid'> </form> 旨在使用一系列术语,其中mm参数告诉Solr根据给定的参数,必须匹配多少个术语。这意味着任何布尔运算符都没有意义,因为它意味着使用一般的自由格式输入。

如果你需要表达&#34;这个字段必须匹配&#34;在与使用mm相同的上下文中,使用过滤查询mm来过滤匹配文档列表。

答案 1 :(得分:1)

最小匹配,即MM仅适用于没有运算符传递到搜索查询的Solr搜索查询。如果将任何运算符(AND / OR)传递给Solr搜索查询,那么mm的值是无关紧要的,不会影响结果。因此,您可以在搜索查询中定义运算符,也可以将其定义为未定义,并使用最小值匹配。

此外,最好使用最小匹配,因为您可以定义搜索短语中应该匹配多少单词,特别是对于使用运算符时不可能的较长短语。

答案 2 :(得分:1)

我有同样的问题,最小匹配应该匹配 - 它会干扰布尔运算符。

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

相关问题