Всем привет!
В 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