elasticsearch-russian-config
elasticsearch-russian-config copied to clipboard
Basic elasticsearch config with russian language support
Базовый конфиг с русской морфологией для elasticsearch
Это базовый конфиг, содержащий основные настройки для работы с русским текстом. По-умолчанию поставляется кастомный набор анализаторов и фильтров с вменяемыми настройками по-умолчанию (см. config/elasticsearch.yml).
Текущая версия конфигурации актуальна для elasticsearch 1.7.1,
но так как elasticsearch.yml практически не изменяется, то
данная конфигурация с большой долей вероятности будет совместима
и с более новыми версиями.
Вместе с конфигом поставляются плагины в директории plugins.
После установки актуальной версии elasticsearch, плагины
рекомендуется обновить для получения наиболее свежей версии.
Установка
-
Докачать оставшиеся бинарники (директории bin и lib из оригинального дистрибутива). В текущем репозитории отсутствуют директории bin и lib, получить их можно так::
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz tar xf elasticsearch-1.7.1.tar.gz cd elasticsearch-1.7.1
-
Установить плагины:
- Russian morphology отсюда: https://github.com/imotov/elasticsearch-analysis-morphology
- elasticsearch-HQ отсюда: http://www.elastichq.org/support_plugin.html
Код::
bin/plugin -install analysis-morphology -url http://dl.bintray.com/content/imotov/elasticsearch-plugins/org/elasticsearch/elasticsearch-analysis-morphology/1.2.0/elasticsearch-analysis-morphology-1.2.0.zip
bin/plugin -install royrusso/elasticsearch-HQ
- Выполнить bin/elasticsearch
Использование
Минимально необходимые действия для использования анализаторов:
- создание индекса
- описание маппинга индексируемого документа
- индексация документов с использованием анализатора ``index_ru``
- поиск с использованием анализатора ``search_ru``
В данной конфигурации анализаторы для поиска и индексации сделаны
используемыми по-умолчанию, т.е. установлены в качестве значений
переменных default_index и default_search. Для совместимости
со старыми версиями конфигурации, им добавлены алиасы search_ru
и index_ru.
Для того, чтобы использовать эти анализаторы, рекомендуется явно указать их в маппинге (если вы решили не использовать их как анализаторы по-умолчанию). Ознакомиться со способами указания анализаторов для конкретного документа, маппинга, индекса или всей ноды в целом, можно в официальной документации: analysis_.
Пример явного указания анализаторов в маппинге:
.. code::
curl -XPUT 'http://localhost:9200/test_index?pretty' -d '{
"mappings": {
"test_mapping": {
"properties": {
"description": {
"index_analyzer": "index_ru",
"search_analyzer": "search_ru",
"type": "string"
},
"name": {
"index_analyzer": "index_ru",
"search_analyzer": "search_ru",
"type": "string"
},
"is_active": {
"type": "boolean"
},
"pk": {
"type": "integer"
},
"slug": {
"index": "not_analyzed",
"type": "string"
}
}
}
}
}'
После создания индекса, указания маппинга и индексирования документов, можно проверить работу анализаторов, выполнив запросы:
.. code::
http://127.0.0.1:9200/test_index/_analyze?analyzer=search_ru&text=<любой ваш текст>
http://127.0.0.1:9200/test_index/_analyze?analyzer=index_ru&text=<любой ваш текст>
.. _analysis: https://www.elastic.co/guide/en/elasticsearch/guide/current/_controlling_analysis.html