所以这个查询
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7和(+磁道:“忘记天鹅”+曲目:“就像天堂”)和曲目:2到100和src:1&limit=100&offset=0
给出了35个结果,而
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7和(曲目:“忘记天鹅”和曲目:“就像天堂”)和曲目:2比100和src:1&limit=100&offset=0
给出了2个结果。
在第一种情况下,它返回的文档中,田径场匹配“忘记天鹅”或“只是躺在天堂”,而第二种只在田径场匹配两者时才返回,因此第一个查询的作用就好像这两个轨道参数之间存在隐式or一样,如下所示
http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7和(+磁道:“忘记天鹅”或+曲目:“就像天堂”)和曲目:2到100和src:1&limit=100&offset=0
但是,如果是这样,那么+运算符的意义是什么?
更新:我现在想知道这个问题是否与查询是在互联网上进行有关,以及“+”是否被错误地编码了
发布于 2015-11-02 16:38:45
您是对的,关于需要转义URL中的"+“。就Lucene语法而言,查询解析器将x AND y解释为+x +y,因此它们在定义上是相同的。
尝试用%2B替换plusses:
[http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7%20AND%20Jr.)%20AND%20(%2Btrack:%22Forget%20The%20Swan%22%20%2Btrack:%22Just%20Like%20Heaven%22%20)%20AND%20tracks:[2%20TO%20100]%20AND%20src:1&limit=100&offset=0](http://jthinkws.elasticbeanstalk.com/?type=release&query=artist:(Dinosaur~0.7%20AND%20Jr.%29%20AND%20(%2Btrack:%22Forget%20The%20Swan%22%20%2Btrack:%22Just%20Like%20Heaven%22%20%29%20AND%20tracks:[2%20TO%20100]%20AND%20src:1&limit=100&offset=0)
https://stackoverflow.com/questions/33480484
复制相似问题