elasticsearch 是否可以为我的索引定义一个全局配置变量(自定义变量)?

gjmwrych  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(1)|浏览(166)

我在MySQL中有一个product表。我也使用Elasticsearch来搜索产品。
我使用this methodproduct表更新Elasticsearch。
以下是上述artcile的总结,以解释我如何从MySQL同步Elasticsearch:

  • 我有一张table叫:elasticsearch_tracker
  • 每次在product表中更改一行时,我都会向elasticsearch_tracker添加一条记录
  • elasticsearch_tracker告诉我Elasticsearch的最新更新
  • 每10秒读取一次elasticsearch_tracker,如果这里有任何行,我会将它们发送到Elasticsearch
  • Elasticsearch中的每个product都有一个tracker_id,所以我可以告诉Elasticsearch的最新更新是什么

提问

为了从elasticsearch中获取最新的tracker_id,我必须运行一个查询来获取所有文档中的最大tracker_id。这似乎涉及到很多不必要的处理,因为我只对max tracker_id感兴趣
所以我想知道是否可以为我的索引定义一个全局变量(配置变量),并将其命名为max_tracket_id。现在,如果在每个文档中添加一次tracker_id,并通过查找其最大值的过程,我可以读取max_tracket_id的值...显然,每次从MySQL同步到Elasticsearch时,我都必须更新max_tracket_id
是否可以在Elasticsearch中为每个索引定义这样一个全局配置变量?我使用的是ES版本6。

92vpleto

92vpleto1#

是的,你可以将max_tracker_id存储在index metadata中,这是一个很好的地方。

PUT product/_mapping
{
  "_meta": { 
    "max_tracker_id": "12345"
  }
}

要检索它,您只需运行以下命令:

GET product?filter_path=**._meta

相关问题