Я хочу иметь возможность выполнять запрос и получать результаты, которые не чувствительны к регистру и соответствуют частичным словам из индекса.
У меня настроена схема Solr в тот момент, когдабыл изменен, так что я могу запрашивать и возвращать результаты независимо от того, в каком случае они.Так что, если я буду искать iPOd, я увижу, что iPod вернулся.Код для этого:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
...
</fieldType>
Я нашел этот код, который позволит нам выполнить частичный запрос на совпадение слов, но я не думаю, что у меня может быть два токенизатора в одном поле.
<fieldType name="text" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
...
</fieldType>
Так что же я могу сделать, чтобы также выполнить этот токенизатор на поле?
Или есть способ объединить их?
Или есть другой способ выполнить эту задачу?