Java 和+之间的区别是什么;在Lucene查询语法中
所以这个查询 和(+音轨:“忘记天鹅”+音轨:“就像天堂一样”)和音轨:[2到100]和src:1&limit=100&offset=0 给出35个结果,而 和(曲目:“忘记天鹅”和曲目:“就像天堂一样”)和曲目:[2到100]和src:1&limit=100&offset=0 给出了2个结果 在第一种情况下,它似乎返回田径场匹配“忘记天鹅”或“只是天堂”的文档,而第二种情况仅在田径场匹配两者时返回,因此第一个查询的作用就像两个田径参数之间存在一个隐式or,如下所示 和(+音轨:“忘记天鹅”或+音轨:“就像天堂一样”)和音轨:[2到100]和src:1&limit=100&offset=0 但如果是这样,+运算符的意义是什么 更新:Java 和+之间的区别是什么;在Lucene查询语法中,java,lucene,Java,Lucene,所以这个查询 和(+音轨:“忘记天鹅”+音轨:“就像天堂一样”)和音轨:[2到100]和src:1&limit=100&offset=0 给出35个结果,而 和(曲目:“忘记天鹅”和曲目:“就像天堂一样”)和曲目:[2到100]和src:1&limit=100&offset=0 给出了2个结果 在第一种情况下,它似乎返回田径场匹配“忘记天鹅”或“只是天堂”的文档,而第二种情况仅在田径场匹配两者时返回,因此第一个查询的作用就像两个田径参数之间存在一个隐式or,如下所示 和(+音轨:“忘记天鹅”或+
我现在想知道这个问题是否与通过internet进行查询以及“+”是否被错误编码有关关于需要在URL中转义“+”的问题,你是对的。就Lucene语法而言,
x和y
被查询解析器解释为+x+y
,因此它们在定义上是相同的
尝试用%2B
替换加号:
对,thx有效,但我有点困惑。我最初的问题是,由我的服务器编码的查询与放入Firefox浏览器并由Firefox编码的查询得到的结果不同。我认为我的代码错了,但现在看来Firefox错了——comments@PaulTaylor——我不会说Firefox错了,真的。不幸的是,Firefox还没有配备读心技术,所以不能指望它知道这个加号应该是文字加号,而不是通常的转义空间。没错,所以我用Firefox作为基准来比较我的查询是错误的,(似乎这只是给我带来问题的加号)