没有正确处理solr查询中的加号

时间:2015-01-07 19:41:42

标签: solr

所有

我是Solr的新手,当我使用solr示例导入一些随机文档时,我在q中使用搜索查询,如:

fund+report

基金和+之间没有空间,我认为它会搜索一个单词" fund + report"在文档中,很少发生在文档中,但很多结果返回,查询网址是:

http://localhost:8983/solr/collection1/select?q=fund%2Breport&fl=id+filename+%5Bexplain%5D&wt=xml&indent=true

我认为Solr对待我的查询就像:

fund report

fund OR report

有谁能告诉我为什么solr会这样对待我的查询?我怎样才能将solr对待基金+报告作为一个单词?

由于

1 个答案:

答案 0 :(得分:2)

HTTP调用只会将+转换为空格。如果您需要实际的+符号,则需要使用+的URL编码值(我认为是%2B)。如果您正在寻找词组 基金报告,那么您希望在该词组周围添加双引号,例如"fund report"。这些也应该是URL编码的(我认为它的值是%22)。

请注意,如果您正在使用词干,那么搜索"fund report"会找到"funds reports""funding reports"等的结果。但也许这就是您想要的。

毕竟说完了,你的网址可能如下所示:

http://localhost:8983/solr/collection1/select?q=%22fund%20report%22&fl=id,filename,%5Bexplain%5D&wt=xml&indent=true

请注意,为fl参数列出的字段应以逗号分隔。我不确定为什么你在explain字段周围有方括号。