Solr 4.0在字符串字段中搜索

时间:2012-11-22 11:37:08

标签: solr indexing migration

我们从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的迁移信息中没有找到任何相关信息

1 个答案:

答案 0 :(得分:0)

https://issues.apache.org/jira/browse/SOLR-4276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13545425#comment-13545425

查询中的标记需要转义,因为Solr 4支持查询中的正则表达式:

QueryParser.escape("XXXX")

我们正在使用此方法,但这是使用Solr / Lucene 3.6在另一个组件中完成的。