我们从Solr 3.6升级到Solr 4.0。不幸的是,如何通过唯一键从索引中检索文档的行为显然已经改变。
在Solr 3.6中,以下查询检索单个文档:
key:conf/socc/AscottS09
但是当使用具有相同文档集合(重新索引)的Solr 4.0时,将返回空结果列表。似乎Solr 4.0正在处理/分析术语conf/socc/AscottS09
,即使它是solr.StrField
类型。当括号中的术语用引号标记时,查询在Solr 4.0中按预期工作:
key:"conf/socc/AscottS09"
schema.xml中:
...
<fieldType name="string" class="solr.StrField" sortMissingLast="true" mitNorms="true"/>
...
<field name="key" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
...
这是一个错误还是Solr处理字符串字段有什么变化?
编辑:我在Solr 4.0的迁移信息中没有找到任何相关信息
答案 0 :(得分:0)
查询中的标记需要转义,因为Solr 4支持查询中的正则表达式:
QueryParser.escape("XXXX")
我们正在使用此方法,但这是使用Solr / Lucene 3.6在另一个组件中完成的。