在phrasequery上搜索text_general字段时出现Solr错误500

时间:2013-10-24 19:20:43

标签: solr phrase

获取查询错误:

LNm:" PersonLastName III"

回复是:"字段\" LNm \"被索引没有位置数据;无法运行PhraseQuery'

架构是:

<field name="LNm" type="text_general" indexed="true" stored="true"/>

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>

    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

2 个答案:

答案 0 :(得分:13)

这是因为您将field_type从string更改为text_general并且没有执行干净的索引。因此索引器没有必要的位置数据。首先使用

清空核心
/your_core_name/update?stream.body=<delete><query>*:*</query></delete>&commit=true

然后索引这个核心。

注意:上面的更新代码会删除核心中的所有数据,但这无法撤消!

答案 1 :(得分:0)

由于在&#34; PF&#34;中使用了复制域,我也得到了同样的错误。 solr的参数。 删除&#34; PF&#34;中的任何副本字段参数,它将顺利运作。

我的Solr Schema =&gt; copyField source =&#34; name&#34; DEST =&#34; SNAME&#34;

我的SolrConfig文件=&gt; attr_Cuisines ^ 20 sname ^ 10 邻域^ 5子类^ 10个标签^ 1个特征^ 2

当我从&#34; PF&#34; 参数中删除&#34; sname&#34; 时,它有效