如何在solr dismax中使用“OR”进行高级搜索查询

时间:2010-06-25 07:53:06

标签: solr edismax dismax

如何使用solr dismax处理程序指定像“java with(developer OR programmer)”这样的查询...

它适用于solr标准处理程序,但不适用于dismax

3 个答案:

答案 0 :(得分:2)

dismax的默认值是OR(可选),如果您希望术语是必需的,则必须在它们前面添加加号。因此,假设您的查询必须包含“java with”之类的内容,例如“+ java + with developer programmer”应该有效。

mm用于设置必须匹配的可选子句的数量。默认值为100%,因此可能需要进行一些调整才能得到您想要的结果。有一些例子可以找到here

答案 1 :(得分:0)

您必须了解dismax不是为处理此类查询而设计的。 Dismax支持Lucene QueryParser语法的简化版本。使用它时,它只允许用户提供关键字,而不是打扰语法。

您可以找到更多details about dismax here。请注意有关mm参数的部分,该参数允许使用dismax模拟布尔查询。

答案 2 :(得分:0)

这可能有点偏离主题但似乎在这里程序员和开发人员的单词是同义词,如果放在同义词文件中最好,有效地中和了对“程序员或开发者”类型语句的需要。否则,调整最小值应匹配是最接近的事情。最好的方法是使用EDISMAX切换到新版本的solr,因为它支持标准和dismax语法。