Можете ли вы логически вкладывать запросы в ElasticSearch, чтобы выходные данные одного запроса были входными данными для другого запроса. Другой способ задать вопрос: как связать или связать запросы вместе?

Это должно быть аналогично оператору IN или подзапросам в SQL.

Например: - выберите au_lname, au_fname, title из (выберите au_lname, au_fname, au_id из pubs.dbo.authors, где state = 'CA') или

ВЫБЕРИТЕ имя ИЗ AdventureWorks2008R2.Production.Product ГДЕ ListPrice = (ВЫБЕРИТЕ ListPrice ИЗ AdventureWorks2008R2.Production.Product, ГДЕ Name = 'Болты звездочки');

19
user48545 26 Фев 2015 в 07:22

3 ответа

Лучший ответ

Elasticsearch не поддерживает подзапросы; вам нужно будет выполнить свой первый запрос, а затем построить второй запрос, используя результаты первого запроса в качестве входных.

20
Chris Heald 26 Фев 2015 в 04:37

Это совершенно правильно, вы должны запрограммировать подзапрос на своем любимом языке программирования. Пример можно найти здесь:

http://www.sebastianviereck.de/en/elasticsearch-subquery-scoring-optimization/

-2
Sebastian Viereck 14 Июн 2017 в 22:15

Это не поддерживается в эластичном поиске, вы должны нормализовать свои данные и иметь все поля, которые вам нужны, в одной настройке

0
reihaneh 19 Май 2018 в 07:42