http://www.elasticsearch.org/guide/en/elasticsearch/client/community/current/health.html

аюсь настроить индекс ElasticSearch с различными анализаторами для отдельных полей. Тем не менее, я не могу найти способ установить специфичные для поля анализаторы; вот как я создаю свой (тестовый) индекс:

curl -XPOST localhost:9200/twitter
curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d '
{
    "tweet" : {
        "properties" : {
            "message" : {
                "type" : "string",
                "search_analyzer" : "snowball", 
                "index_analyzer" : "snowball"
            }
        }
    }
}'

Если я правильно прочитал документацию, то это должно создать индекс «твиттер» с типом «твит», а контент для поля «сообщение» должен быть проанализирован с помощью анализатора стеблей снежного кома. Чтобы проверить это, я попробовал следующие запросы:

curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
    "message" : "Look, a fighting War-Unicorn!"
}'
curl -XGET localhost:9200/twitter/_search?q=fight

Если я не ошибаюсь, то это должно вернуть удар, так как бой - это основа для борьбы; проблема в том, что нет, я получаю ноль хитов. Похоже, что ElasticSearch полностью игнорирует сопоставление (хотя ElasticSearch принимает все эти запросы, так как я получаю «ок» для каждого из них).

Я уже пытался заменить анализатор по умолчанию на анализатор снежного кома, и тогда он работает; Дело в том, что мне совершенно необходимы специальные анализаторы, поэтому это мне не поможет. Я также пробовал разные анализаторы и такие вещи, как установка «index» на «no», но безрезультатно.

Что я делаю неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос