SOLR松散搭配空间

时间:2013-06-14 16:52:22

标签: solr

我在solr中有以下架构,我正在进行文本匹配以下是Fields和copyfield。

 <!-- 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的东西 搜索:Lorem Ipsum的东西(火柴)          Lorem Ipsum(比赛)          Lorem或Ipsum或Stuf(匹配)   * ===&gt; Lorem Ips(不匹配。)或ipsum stu(不匹配。)

当分析器显示与namedescription字段匹配时,我必须添加什么。我错过了什么。

1 个答案:

答案 0 :(得分:0)

首先 - 您正在将namedescriptionnamedescription_ngram复制到namedescr字段中。

第二 - 您正在查询namedescrcopyField执行以下操作 - “在调用任何已配置的原始或目标字段的分析器之前,原始文本从”源“字段发送到”dest“字段。根据{{​​3}}

如果您在字段Lorem Ipsipsum stu上查询namedescriptionnamedescription_ngram,则会在namedescr上有效但不在namedescr

由于N-Grams未生成{{1}},因此无效。