Добавление Stemming в мой файл schema.xml не работает
-
25-10-2019 - |
Вопрос
Я пытаюсь настроить 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
Что я делаю не так?
Решение
У меня есть две идеи для вас здесь:
Во -первых, вы не упомянули, перезагружаете ли вы Solr после изменения своего schema.xml
. Анкет Итак: вы перезагружаете Solr, чтобы ваши изменения вступили в силу? :)
Далее мне интересно, если термин grit
даже будет иметь право иметь свой t
удалено под алгоритмом обозначения носильщика. Вам нужно будет тщательно прочитать о Алгоритм Porterstemmer быть уверенным. Но вы также можете попробовать более очевидные примеры (скажем, writing
к write
).