1

我最近使用 ComplexPhrase 查询插件 ( https://issues.apache.org/jira/browse/SOLR-1604 ) 修补了我的 Solr 4.2.1。当我发出如下查询时:

my_text_field:"testin* compl*"~1 AND my_date_field:2013-12-12T04:58:53.732Z

我得到的结果包含我发出的文本查询和我在 my_date_field 中发出的日期。

但是当我这样做时:

my_text_field:"testin* compl*"~1 AND my_date_field:[2013-01-01T02:58:53.732Z TO 2013-12-12T04:58:53.732Z]

我没有得到任何结果。

如果我删除复杂短语解析器,事情就会恢复正常(但我不支持复杂短语查询)。

4

1 回答 1

1

好的,经过一段时间阅读 lucene 和 solr 代码后,我想通了。

此补丁创建了一个扩展 Lucene QueryParser 的查询解析器。Lucene QueryParser 不处理除 Term Ranges 以外的范围查询(某种意义上的简单字符串)。如果想专门研究 QueryParser 的行为,他必须提取字段类型并创建适当的范围查询(例如,用于数字的 NumericRangeQuery 等)。

于 2013-10-16T14:27:56.043 回答