Solr ShingleFilterFactory с автоматическим предложением - PullRequest
4 голосов
/ 19 мая 2011

Я использую Solr ShingleFilterFactory для самовнушения. Это моя полевая конфигурация:

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ShingleFilterFactory" maxShingleSize="4" outputUnigrams="true"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
</fieldType>

И мой запрос:

q=rows=0&facet=true&facet.field=spellingShingle&facet.prefix=har

Я получаю следующие ответы:

  • хар Рай Поттер
  • хар Ризон Форд
  • и т.д ...

Проблема в том, что при поиске "pot" или "for" ... я не получаю результатов. Я хотел бы предложить " pot ter harry" или " для d harrison".

Как я могу это сделать?

1 Ответ

3 голосов
/ 24 мая 2011

Я думаю, результаты зависят от содержимого вашего поля spellingShingle.Если оба значения, «Гарри Поттер» и «Поттер Гарри», являются значениями поля, solr / lucene вернет «Поттер Гарри», набрав «горшок»

...