Солр нграм не соответствует номеру? - PullRequest
0 голосов
/ 05 января 2012

Я использую стандартное определение поля Solr ngram -

<fieldType name="ngram" class="solr.TextField" positionIncrementGap="100" stored="false" multiValued="true">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <!-- potentially word delimiter, synonym filter, stop words, NOT stemming -->
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <!-- potentially word delimiter, synonym filter, stop words, NOT stemming -->
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

<field name="item" type="text" indexed="true" stored="true"/>
<field name="item_ngram" type="ngram" indexed="true" stored="true"/>

сейчас "item: ipad AND item: 2" находит "iPad 2", а "item_ngram: ipad AND item_ngram: 2" - нет.

Есть идеи?

1 Ответ

2 голосов
/ 05 января 2012

Ваши n-граммы имеют минимальную длину 2 (minGramSize = "2"). Поэтому item_ngram: 2 не будет совпадать ни с чем. Уменьшите его до 1, и вы получите совпадения.

...