Можно ли сравнить два поля разных типов в Query DSL?

Я новичок в ElasticSearch, и я борюсь с этим вопросом. В основном то, что я хочу сделать, похоже на это (пример SQL):

SELECT A.id
FROM TableA A, TableB B
WHERE A.id = B.id;

Мне нужен запрос, который возвращает всю информацию из TableA, но только если идентификатор из TableA равен идентификатору из TableB. Я прочитал множество полей Query Filter и думаю, что мог бы использовать Поле термина, но я не знаю, как это сделать.

Заранее спасибо!


person Tiago Costa    schedule 22.04.2015    source источник


Ответы (1)


Этот ответ дал Адриан Гранд в группе ElasticSearch:

Этот SQL-запрос является объединением, и обычно elasticsearch не поддерживает соединения.

Если поле id является вашим PK, вы можете сделать это, проиндексировав B как дочерний элемент A (используя parent/child), а затем выполнив поиск всех документов в A, у которых есть дочерний элемент в B.

person Tiago Costa    schedule 22.04.2015