【发布时间】:2023-01-24 17:03:37
【问题描述】:
假设我有以下“费用”MySQL 表:
| id | amount | vendor | tag |
|---|---|---|---|
| 1 | 100 | foo | |
| 2 | 450 | GitHub | bar |
| 3 | 22 | GitLab | fizz |
| 4 | 75 | AWS | buzz |
我正在构建一个 API,它应该根据部分“供应商”或“标签”过滤器返回费用,因此 vendor="Git" 应该返回记录 2 和 3,而 tag ="zz" 应该返回记录 3 和 4。
我在考虑使用 elasticsearch 功能,但我不确定正确的方法..
我阅读的大多数文章都建议将表记录(使用 logstash 管道或其他方法)复制到弹性索引。
所以我的 API 甚至不查询数据库并直接从 ES 返回文档数组?
这被认为是好的做法吗?将整个表复制到弹性? 表关系怎么样...如果我想按嵌套表关系过滤怎么办?...
【问题讨论】:
-
没有其他办法了。要使用 elasticsearch 功能,您需要在 elasticsearch 中托管数据。是的,它们是一些限制,例如 Elasticsearch 中没有关系。从你的例子我相信你可以用 SQL 中的模糊匹配做一些事情
标签: mysql elasticsearch replication