ElasticSearch сопоставление не работает - PullRequest
9 голосов
/ 03 июня 2011

Я пытаюсь настроить индекс 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"
            }
        }
    }
}'

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

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 принимает все эти запросы, поскольку я получаю 'ok' для каждого из них.)

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

Что я делаю не так?

Ответы [ 2 ]

11 голосов
/ 03 июня 2011

Чтобы использовать анализатор для конкретного поля, необходимо указать это поле в запросе. В противном случае используется анализатор по умолчанию. Попробуйте

curl -XGET 'localhost:9200/twitter/_search?q=message:fight'

или

curl -XGET 'localhost:9200/twitter/_search?df=message&q=looking'
0 голосов
/ 29 декабря 2014

Я рекомендую вам использовать https://github.com/lmenezes/elasticsearch-kopf, чтобы протестировать все анализаторы и скопировать mapp из другого индекса и отслеживать ваши индексы ... http://www.elasticsearch.org/guide/en/elasticsearch/client/community/current/health.html

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