2013-10-16 36 views
1

我最近使用ComplexPhrase查询插件(https://issues.apache.org/jira/browse/SOLR-1604)对我的Solr 4.2.1进行了修补。当我发出一个查询,如:Solr 4.2.1和SOLR-1604:ComplexPhrase和日期范围查询不能一起工作

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] 

我没有得到任何结果。

如果我删除复杂词法分析器的东西回到正常(但我不支持复杂的词组查询)。

回答

1

经过一段时间阅读lucene和solr代码后,我想出了它。

此修补程序创建一个扩展Lucene QueryParser的Query Parser。 Lucene QueryParser不处理除范围范围以外的范围查询(一种方式中的简单字符串)。如果想要专门化QueryParser的行为,他必须提取字段类型并创建适当的范围查询(例如,用于数字的NumericRangeQuery等)。