@Fly3110
web developer

Как в elasticsearch искать по полю типа long?

Всем привет!

В elasticsearch под одним индексом есть два типа.
Например order/create и order/update
в mapping обоих типов есть поле order_id с типом long

для заказа под номером один есть записи и в create и в update

Если сделать запрос вида localhost:9200/order/_search?q=order_id:1, то результатов не будет вообще.
Если сделать запрос с точным указанием типа, например localhost:9200/order/create/_search?q=order_id:1, то мы получим верный результат (один). А надо одним запросом получить все действия с заказом.

При этом, если мы меняем в маппингах тип с long на string, то все начинает работать как ожидалось. Весь день сегодня читал документацию elasticsearch, так и не нашел, где я нагрешил что я сделал неправильно.

Также, если не указывать имя параметра, а сделать поиск по _all, то возвращаются все ожидаемые результаты. то есть вот так: localhost:9200/order/_search?q=1

P.S. Когда тип long, на поиск в /order не работет ни один вариант поиска. Ни простой term, ни range query, ни uri search
  • Вопрос задан
  • 2286 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы