我遇到了Solr的问题,我无法将不精确的搜索与多个单词进行协调。
目前我的Solr配置如下:query=ctnt_val:*keyword*
其中ctnt_val是我正在搜索的字段,关键字是我传递的值。
因此,如果我输入 lon ,它将返回更长,伦敦的所有结果,...这就是我想要的。
问题在于,如果我的查询长达几个字(例如, Gotham City ),则会返回包含 Gotham 的所有结果以及包含 City <的所有结果/ em>,而不是只返回包含 Gotham City 的所有结果。
如果我将查询更改为query=ctnt_val:"keyword"
它可以正常工作,但我失去了执行不精确搜索的能力( lon 将不再返回伦敦)。如果我query=ctnt_val:*"keyword"*
我从我的数据库中获得所有结果,这显然不是我想要的。
有什么想法吗?
答案 0 :(得分:2)
默认搜索处理程序使用OR作为default query operator。
您可以使用q=ctnt_val:gotham\ city&q.op=AND
进行检查,这会将查询运算符设置为AND,并将所有查询字词设为必填项。
gotham\ city
- \
是从查询中逃避空间