当我在Solr中查询时,为什么我的ngram字段不显示?

时间:2014-08-17 05:01:59

标签: solr

这是我目前的代码。字段文本作为普通文本处理,工作正常。 所以我的问题是,我没有看到optiSearchTXT_ngram请求。我看到optiSearchTXT很好,但是没有optiSearchTXT_ngram字段。我的代码有问题或复制的字段/ ngram字段没有显示?该字段显示在分析btw上,因此它被Solr识别,它似乎似乎没有将发送到该solr的信息复制到该字段中。

<field name="optiSearchTXT" type="text" indexed="true" stored="true" />
<field name="optiSearchTXT_ngram" type="opti_ngram" indexed="true" stored="false" />

<copyField source="optiSearchTXT" dest="optiSearchTXT_ngram" />

<fieldType name="opti_ngram" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.ASCIIFoldingFilterFactory" />
        <filter class="solr.EdgeNGramFilterFactory" maxGramSize="25" minGramSize="2" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.ASCIIFoldingFilterFactory" />
    </analyzer>
</fieldType>

根据要求,我没有看到 optiSearchTXT_ngram 字段的任何想法?

1 个答案:

答案 0 :(得分:0)

<field name="optiSearchTXT_ngram" type="opti_ngram" indexed="true" stored="false" />

这是因为optiSearchTXT_ngram字段标记为stored=false,这意味着它不会在响应/结果中返回。

有关详细信息,请参阅solr wikirelated SO question