Skip to content
This repository has been archived by the owner on Apr 26, 2022. It is now read-only.

asyncee/elasticsearch-russian-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Базовый конфиг с русской морфологией для elasticsearch

Это базовый конфиг, содержащий основные настройки для работы с русским текстом. По-умолчанию поставляется кастомный набор анализаторов и фильтров с вменяемыми настройками по-умолчанию (см. config/elasticsearch.yml).

Текущая версия конфигурации актуальна для elasticsearch 1.7.1, но так как elasticsearch.yml практически не изменяется, то данная конфигурация с большой долей вероятности будет совместима и с более новыми версиями.

Вместе с конфигом поставляются плагины в директории plugins. После установки актуальной версии elasticsearch, плагины рекомендуется обновить для получения наиболее свежей версии.

Установка

1. Докачать оставшиеся бинарники (директории 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
  1. Установить плагины:

Код:

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
  1. Выполнить bin/elasticsearch

Использование

Минимально необходимые действия для использования анализаторов:

  • создание индекса
  • описание маппинга индексируемого документа
  • индексация документов с использованием анализатора index_ru
  • поиск с использованием анализатора search_ru

В данной конфигурации анализаторы для поиска и индексации сделаны используемыми по-умолчанию, т.е. установлены в качестве значений переменных default_index и default_search. Для совместимости со старыми версиями конфигурации, им добавлены алиасы search_ru и index_ru.

Для того, чтобы использовать эти анализаторы, рекомендуется явно указать их в маппинге (если вы решили не использовать их как анализаторы по-умолчанию). Ознакомиться со способами указания анализаторов для конкретного документа, маппинга, индекса или всей ноды в целом, можно в официальной документации: analysis.

Пример явного указания анализаторов в маппинге:

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"
        }
      }
    }
  }
}'

После создания индекса, указания маппинга и индексирования документов, можно проверить работу анализаторов, выполнив запросы:

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=<любой ваш текст>

About

Basic elasticsearch config with russian language support

Resources

License

Stars

Watchers

Forks

Packages

No packages published