如何将下面的 Mysql 查询转换为 Elasticsearch 查询?
SELECT
distinct t.id as 'Task ID',
cust.name as 'Customer' ,
ticketType.type as 'Task Type',
t.created_time as 'Created Date',
ci.name as 'Asset'
FROM ticket t
JOIN reported_master AS rs ON reported_issue_type.id = t.reported_issuetype_id
JOIN ci_master AS ci ON ci.id = t.primary_ci
JOIN ticket_source_master AS source_master ON source_master.id = t.ticket_source_id
and source_master.name='Bus'
where t.engagement_id=14653 and t.created_time >= DATE_SUB(NOW(), INTERVAL 24 HOUR);
我是 ES 新手,不知道如何编写连接条件查询。
最佳答案
正如评论部分所述,您无法在elasticsearch中像在SQL/关系数据库中那样方便地进行JOIN。
但是,您可能想看看 SQL Translate API它将 SQL 语句转换为原生 Elasticsearch 查询。
此外,我建议查看 Join datatype和 Joining Queries了解 Elasticsearch 中加入文档的机制/要求。 但我强烈建议更改您的数据结构而不是加入文档。
希望这有帮助。
关于Mysql 查询到 Elasticsearch 查询转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59808125/