Mysql 查询到 Elasticsearch 查询转换

标签 mysql elasticsearch elastic-stack elk

如何将下面的 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 datatypeJoining Queries了解 Elasticsearch 中加入文档的机制/要求。 但我强烈建议更改您的数据结构而不是加入文档。

希望这有帮助。

关于Mysql 查询到 Elasticsearch 查询转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59808125/

相关文章:

elasticsearch - 没有在 Field ElasticSearch 6.4.3 上声明类型关键字的处理程序

elasticsearch - 通过HTTPS的Filebeat

elasticsearch - 如何将应用程序日志从 NodeJS 应用程序发送到 Kubernetes 中托管的 Elastic Stack?

php - 表的列与当前 session 匹配

PHP, MySQL - 简单的搜索结果不需要

php - MySQL 与 PHP 中的加密和散列

mysql - SQL 查询 : 3 tables highest Value plus rest of row plus

elasticsearch - Elastic APM 能否测量除 Web 应用程序之外的应用程序的性能?

elasticsearch - ElasticsearchIllegalArgumentException [suggester [completion]需要设置上下文]

docker - 如何使用fluentd收集pod日志并将其发送到elasticsearch?