我的问题是,当我搜索多个单词短语时,Solr似乎没有返回好的结果。
以下搜索未返回任何结果。
然而,当我搜索屋顶或修复时,它们都会返回一些好结果。
在查询“屋顶修复”时,我希望solr返回7个结果。 屋顶的4条记录和修复的3条记录。
是否需要进行任何特殊配置?
答案 0 :(得分:9)
您刚刚错误地表达了您的查询。
从管理页面尝试以下查询:
(屋顶或固定)
或者,如果你想在特定领域找到它:
fieldname :(屋顶或修理)
当您向SOLR提供类似“屋顶修复”的查询时,您实际上要求所有在默认字段中具有“屋顶”和“修复”的文档(或默认的dismax字段集。更改含义的唯一方法是重写用户输入的查询。这就是我们的工作,但规模更大。我们有一个前端界面,提供了一大堆选项,并从中生成一个SOLR查询。人们可以输入搜索词一个特定的字段,如果有多个单词并且没有引用,我们添加AND。然后我们将所有填写的字段一起OR。有些字段是特殊的,有一个MIN和MAX版本,我们将其转换为范围查询:[0 TO 125000]
。还有一些下拉菜单支持多项选择,我们也将其变为OR,例如State:("WA" OR "CA" OR "OR" OR "NV")
答案 1 :(得分:0)
Solr不一定会为“屋顶或固定”返回7个结果,因为一个结果可能包括 “roof”和“fix”。假设“屋顶”有3个结果,“固定”有4个,但“屋顶”和“固定”都出现在2个结果中。搜索“屋顶或修复”时,您将只获得5个结果,因为Solr不会返回重复结果。
您是否尝试使用网址编码的空格(“%20”)而不是“+”符号?如果默认运算符为OR,则不需要包含该运算符。