Если вы хотите искать по частям слова, вам необходимо применить, например, N-Gram Tokenizer, <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
например.
In: "bicycle"
Out: "bicy", "bicyc", "icyc", "icycl", "cycl", "cycle", "ycle"
В этом случае вы сможете осуществлять поиск по части слова.Вам необходимо применить NGramTokenizerFactory для обоих анализаторов:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="false">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Вы также можете попробовать следующий анализатор запросов.Все зависит от ваших требований.
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
Вы можете изменить или добавить типы полей в schema.xml
и применить их к своему полю.После этого перезапустите сервер, переиндексируйте данные.Вы можете проверить вышеуказанный fieldType для своего поля, если данные совпадают с помощью инструмента администрирования solr.
Я использовал приведенный ниже тип поля и провел анализ с помощью инструмента solr.
Вот полевведите:
<fieldType name="custome_field_type" class="solr.TextField" positionIncrementGap="100" multiValued="false">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
Пожалуйста, найдите изображения, на которых показано, как создаются токены при индексации и запросе данных.Также выделяются совпадения.