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

p1v*_*nde 7 solr phrase

获取查询错误:

LNm:"PersonLastName III"

响应是:"field \"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>
Run Code Online (Sandbox Code Playgroud)

Can*_*DIZ 14

这是因为您将field_type从string更改为text_general并且没有执行干净的索引.因此索引器没有必要的位置数据.首先清空你的核心

/your_core_name/update?stream.body=<delete><query>*:*</query></delete>&commit=true
Run Code Online (Sandbox Code Playgroud)

然后索引这个核心.

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