0

我在 solr 中有以下架构,我正在做文本匹配下面是字段和复制字段。

 <!-- A text type with min processing  -->
    <fieldType name="text_min" class="solr.TextField" omitNorms="false">
      <analyzer>
        <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="25" />
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>

    <!--
     NGram processing for substrings 
    -->
    <fieldType name="text_ngram" class="solr.TextField" omitNorms="false">
      <analyzer>
        <tokenizer class="solr.LowerCaseTokenizerFactory" />
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" side="front" />
      </analyzer>
    </fieldType>



<field name="namedescription" type="text_min" indexed="true" stored="true" />
<field name="namedescription_ngram" type="text_ngram" indexed="true" stored="false" />

<field name="namedescr" type="text" indexed="true" stored="false" multiValued="true"/>

 <copyField source="namedescription" dest="namedescr"/>
 <copyField source="namedescription_ngram" dest="namedescr"/>

我的输入:Lorem Ipsum stuff 搜索:Lorem Ipsum stuff (matches) Lorem Ipsum (Matches) Lorem or Ipsum or Stuf (matches) * ===> Lorem Ips (doesnt match.) or ipsum stu (doesnt match.)

当分析器显示与命名描述字段匹配时,我必须添加什么。我有什么遗漏吗。

4

1 回答 1

0

首先 - 您正在将namedescription和复制namedescription_ngram到该namedescr字段中。

第二 - 你正在查询namedescr。执行以下copyField操作 - “原始文本从“源”字段发送到“目标”字段,然后为源字段或目标字段调用任何配置的分析器。根据这个网站

如果您在字段and上查询Lorem Ipsand ,它将起作用但在.ipsum stunamedescriptionnamedescription_ngramnamedescr

既然namedescr不生成N-Grams就不会有结果。

于 2013-06-14T20:33:01.697 回答