Определите пользовательский ElasticSearch Analyzer, используя Java API - PullRequest
24 голосов
/ 08 июня 2011

Есть ли способ создать индекс и указать собственный анализатор с помощью Java API?Он поддерживает добавление сопоставлений при создании индекса, но я не могу найти способ сделать что-то подобное без отправки JSON через HTTP PUT:

curl -XPUT localhost:9200/twitter?pretty=true -d '{
"analysis": {
       "analyzer": {
            "steak" : {
                "type" : "custom", 
                "tokenizer" : "standard",
                "filter" : ["snowball", "standard", "lowercase"]
            }
        }
    }
}'

Я могу построить такой запрос с помощью JSONBuilder, но я могуВ API нет места, где его можно запускать, CreateIndexRequest не имеет ничего, что я могу использовать, и, как я вижу, ни один не делает client.admin().indices().Какой правильный способ сделать это?

Ответы [ 2 ]

27 голосов
/ 08 июня 2011

Вы можете установить анализатор, используя client.admin().indices().prepareCreate("twitter").setSettings(...). Существует несколько способов создания настроек. Вы можете загрузить их из текста, карты или даже использовать jsonBuilder, если вы этого хотите:

client.admin().indices().prepareCreate("twitter")
            .setSettings(Settings.settingsBuilder().loadFromSource(jsonBuilder()
                .startObject()
                    .startObject("analysis")
                        .startObject("analyzer")
                            .startObject("steak")
                                .field("type", "custom")
                                .field("tokenizer", "standard")
                                .field("filter", new String[]{"snowball", "standard", "lowercase"})
                            .endObject()
                        .endObject()
                    .endObject()
                .endObject().string()))
            .execute().actionGet();
1 голос
/ 04 июля 2012

Если вы находитесь в тестовой среде, вы также можете использовать этот проект, который будет создавать ваши индексы на основе аннотаций Java.https://github.com/tlrx/elasticsearch-test

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...