所以这个查询
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7和Jr.)AND(+轨道:“忘记天鹅”+轨道:“就像天堂一样”)并跟踪:[2到100]和src:1& limit = 100& offset = 0
给出35个结果,而
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7 AND Jr.)AND(轨道:“忘记天鹅”并跟踪:“就像天堂”)并跟踪:[2到100]和src:1& limit = 100& offset = 0
给出2个结果。
在第一种情况下,它似乎返回跟踪字段匹配“忘记天鹅”或“只是谎言天堂”的文档,而第二种情况仅在跟踪字段与两者匹配时返回,因此第一个查询就像在那里一样是两个轨道参数之间的隐式OR,如下所示
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7和Jr.)AND(+轨道:“忘记天鹅”或+轨道:“就像天堂”)并跟踪:[2到100]和src:1& limit = 100& offset = 0
但如果是这样的话+操作符是什么意思?
更新: 我现在想知道问题是否与查询是通过互联网进行以及“+”是否被错误编码有关
答案 0 :(得分:1)
你是对的,关于需要转义URL中的“+”。就Lucene语法而言,x AND y
被查询解析器解释为+x +y
,因此它们在定义上是相同的。
尝试使用%2B
替换加号: