2016-06-07 2 views
0

У меня есть индексированные данные, основанные на поле, говорят «A». Существует около 18 значений, связанных с одинаковым значением «A». Поэтому при индексировании elasticsearch присваивает одинаковое значение «A» всем 18 записям, но назначил конкретную версию каждой записи.Как получить несколько значений, принадлежащих одному и тому же «Id» в elasticsearch?

Например: Запись 1: A = 1, _version = 1, Запись 2: A = 1, _version = 2, Запись 3: A = 1, _version = 3 и т. Д.

Вопрос в том, как получить все эти записи, принадлежащие одному значению «A», используя Java? (BoolQuery, termsQuery, Scroll, multiMatchQuery не полезны в этом случае, следовательно, сомнение.)

+0

Мне непонятно, что вы делаете с полем A. Вы используете A как id? Можете ли вы показать, как вы индексируете документы? Версия, на которую вы ссылаетесь, используется при изменении документа. Мне кажется, что вы обновляете один и тот же документ вместо создания новых документов. Если A имеет несколько значений, вы обычно возвращаете массив значений для исходного документа. Короче говоря, вы можете привести пример кода, объясняющий, чего вы хотите достичь. –

ответ

0

Вы можете выполнить запрос агрегирования для поиска всех документов и их агрегации с использованием отдельной агрегации в поле (A). Это даст вам все возможные значения A. Для запроса документа, который соответствует определенному значению поля, вы можете выполнить поиск фильтра по термину.

+0

Не могли бы вы проиллюстрировать код-снайпер? –

Смежные вопросы