与嵌套查询分组时,Solr / Lucene忽略了邻近搜索

时间:2019-02-07 14:33:36

标签: solr lucene

我在solr查询中遇到一些令人困惑的行为(从技术上讲是Lucene解析),可以简化为以下查询:

_query_:"foo:\"a b\"~3" AND foo:"c d"~6

使用debugQuery选项,我可以看到它被解析为:

+PhraseQuery(foo:\"a b\"~3) +PhraseQuery(foo:\"c d\")

或作为parsedquery_toString,+foo:\"a b\"~3 +foo:\"c d\"

从查询右侧到〜6的接近发生了什么?如上例所示,这仅在将嵌套查询与非嵌套查询结合使用时才会发生。

通过比较,不使用嵌套查询并编写

foo:"a b"~3 AND foo:"c d"~6

正确解析为

+PhraseQuery(foo:\"a b\"~3) +PhraseQuery(foo:\"c d\"~6)

或作为parsedquery_toString,+foo:\"a b\"~3 +foo:\"c d\"~6

或者使用两个嵌套查询,如:

_query_:"foo:\"a b\"~3" AND _query_:"foo:\"c d\"~6"

还可以正确解析为与查询相同,而不使用嵌套查询。

为什么在第一个示例中删除了〜6的邻近搜索?

我正在运行Solr版本4.10.3,但已升级到7.5.0,并且发现了相同的行为。

0 个答案:

没有答案