EdgeNGramFilterFactory по-прежнему не дает результатов? - PullRequest
0 голосов
/ 02 ноября 2011

Я следовал Railscast , чтобы запустить Sunspot, а затем этот учебник по включению подстановочного поиска в моем поле поиска, но по какой-то причине он все еще не работает.

Внутри моего solr / conf / schema.xml я заменил строки по умолчанию этими вместо них для EdgeNGramFilterFactory:

<fieldType name="text" class="solr.TextField" omitNorms="false">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

Когда я ищу "ste" или "steve jobs", я получаю Стива Джобса,но когда я пробую "stv jbs" или stv jobs ", я не получаю результатов.

Я несколько раз переиндексировал и перезапускал сервер солнечных пятен (также сервер rails).

Я пропустилчто-то здесь? В чем может быть проблема?

1 Ответ

5 голосов
/ 02 ноября 2011

EdgeNGramFilterFactory в основном создает n-граммы для терминов.

Таким образом, для steve jobs с минимальным размером грамма в 1 будет сгенерировано следующих токенов -

s, st, ste, stev, steve, steve j, steve jo, steve job, steve jobs

Как и в вашем случае, поиск stv jbs или stv jobs является скорее ошибочным написанием, а не частичным совпадением, и не соответствует документам.

...