Добавление stemming в мой файл schema.xml не работает - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь настроить Websolr в моем приложении Heroku . Я следую инструкциям в документации по Heroku . У меня начальная настройка работает нормально.

В разработке:

ruby-1.9.2-p0 > Note.search { keywords 'grit' }.results.length
 => 3

Я пытаюсь добавить stemming. Я обновил соответствующую часть моего файла schema.xml следующим образом:

<fieldType name="text" class="solr.TextField" omitNorms="false">

  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>

</fieldType>

Затем я переиндексировал:

$ rake sunspot:reindex

Но, похоже, это совсем не работает:

ruby-1.9.2-p0 > Note.search { keywords 'gri' }.results.length
 => 0

Что я делаю не так?

1 Ответ

2 голосов
/ 17 марта 2011

У меня есть две идеи для вас:

Во-первых, вы не упомянули, перезапускали ли вы Solr после изменения schema.xml.Итак: вы перезапускаете Solr, чтобы ваши изменения вступили в силу?:)

Далее, мне интересно, если бы термин grit даже квалифицировался, чтобы удалить его t в соответствии с алгоритмом портера Портера.Вам необходимо внимательно прочитать алгоритм PorterStemmer , чтобы быть уверенным.Но вы также можете попробовать несколько более очевидных примеров (скажем, от writing до write).

...