Для лучшего понимания поиска по синонимам, пожалуйста, следуйте пошаговому процессу реализации ниже (я использую solr 6.5. * Версия ):
Шаг 1:
Загрузите country-synonyms.txt текстовый файл и поместите его по следующему пути:
Путь : \ solr-6.5.1 \ server \ solr \ yourCore \ conf
yourCore: Имя ядра должно быть соответственно изменено
Шаг 2:
Добавить тип поля в файл схемы управления по тому же пути, указанному выше:
<fieldType name="country" class="solr.TextField" positionIncrementGap="100" sortMissingLast="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.SynonymFilterFactory" expand="false" ignoreCase="true" synonyms="country-synonyms.txt" tokenizerFactory="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer></fieldType>
Шаг 3: Добавить свойполе (национальность) с типом страна в том же файле (управляемая схема).
<field name="Nationality" type="country" indexed="true" stored="true"/>
Шаг 4: Перезапустить solr.
solr restart -p <your solr port>
Шаг 5:
Теперь импортируйте ваши данные с полем, содержащим Национальность . ***
Шаг 6:
Теперь запрос с нижеуказанными случаями и проверка:
Запрос :
- Национальность: US
- Национальность: США
- Национальность: США
- Национальность: Соединенные Штаты Америки
Все вышеперечисленные запросы дадут одинаковый результат.
Примечание : *** Импортировать данные только после выполнения вышеуказанных шагов, включая перезапуск Solr.Может не работать с существующими данными (подробнее см. AnalyzersTokenizersTokenFilters )