Когда я ищу «пиво», то у меня есть результаты, но когда я ищу «пчелу», я не получаю никаких результатов. Я не могу найти слово, которое короче 4 символов. Есть ли способ сделать это возможным ?!Rails Sunspot Solr поиск не работает, когда есть меньше 3 символов
-1
A
ответ
0
Проверьте конфигурацию SOLR conf/schema.xml
и настройте параметры в соответствии с вашими требованиями. После того, как изменения перестроят ваш индекс и повторите попытку.
Возможно, эта часть, но вы должны «играть» с настройками.
Попробуйте этот конфиг, как например:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="0"
catenateWords="1"
catenateNumbers="1"
catenateAll="1"
splitOnNumerics="0"
splitOnCaseChange="1"
preserveOriginal="1" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="42" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Любой пример, как изменить Conf/schema.xml? Что я должен изменить ?! Я попытался '<анализатор типа = "индекс"> <токенизатор класс = "solr.StandardTokenizerFactory"/> <фильтр класса = "solr.StandardFilterFactory"/> <класс фильтра = "solr.LowerCaseFilterFactory"/> < фильтр класса = "solr.NGramFilterFactory" minGramSize = "2" maxGramSize = "30" /> <анализатор типа = "запрос"> <фильтр класс = "solr.StandardTokenizerFactory" /> <фильтр класс = "Solr .StandardFilterFactory "/> ' но это не сработало –
Я добавил полный пример части, изменил вашу конфигурацию, перестроил индекс и попробовал. – YvesR