【发布时间】:2021-06-16 11:45:48
【问题描述】:
我是 ElasticSearch 的新手,我想知道是否有办法将以下 SQL 转换为 Elasticsearch DSL:
SELECT TOP 3 1 as Priority, * FROM Customers where ContactName like 'A%'
UNION
SELECT TOP 3 2 as Priority, * FROM Customers where NOT(ContactName like 'A%')
ORDER BY Priority, ContactName ASC;
另外,我想知道是否有一个选项可以将此查询扩展到 SQL 不支持的内容...以不同的顺序对每个查询进行排序(据我所知无法在SQL),所以从概念上讲,SQL 看起来像:
(SELECT TOP 3 1 as Priority, * FROM Customers where ContactName like 'A%'ORDER BY Priority, City ASC)
UNION
(SELECT TOP 3 2 as Priority, * FROM Customers where NOT(ContactName like 'A%')
ORDER BY Priority, ContactName ASC);
注意:我更喜欢将所有响应对象作为一个响应来获取,而不是作为与特定源查询相关联的响应列表(类似于我将从上面的 SQL 语句中获得的响应)。
【问题讨论】:
标签: elasticsearch dsl