8

查询错误:

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>
4

2 回答 2

17

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

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

然后索引这个核心。

注意:上面的更新代码将删除你所有的核心数据,这不能撤消!

于 2014-02-11T11:49:10.107 回答
0

由于在 solr 的“PF”参数中使用了复制字段,我也遇到了同样的错误。从“PF”参数中删除任何复制字段,它将顺利工作。

我的 Solr 架构 => copyField source="name" dest="sname"

我的 SolrConfig 文件=> attr_Cuisines^20 sname^10 neighbourhood^5 subcats^10 tags^1 features^2

当我从“PF”参数中删除“sname”时,它起作用了

于 2014-05-29T11:09:38.667 回答