1

我正在kairosdb用作我的主要数据库。现在我想将弹性搜索功能集成到我的数据中kairosdb。如文档中所述,我必须在 elasticsearch 中复制我的主数据库的所有条目database

更新

我的意思是:

如果我想在 elasticsearch 中索引某些东西,我必须这样做,例如:

检索kairosdb的数据,一个示例json{"name": "hi","value": "6","tags"}

然后放进去elasticsearch

 curl -XPUT 'http://localhost:9200/firstIndex/test/1' -d '{"name": "hi","value": "6","tags"}'

如果我想搜索我必须这样做:

curl 'http://localhost:9200/_search?q=name:hi&pretty=true'

我想知道是否可以在 elasticsearch 中不复制我的数据,我可以做到这一点:

  • 从 kairosDB 获取数据
  • 使用 elasticsearch 索引它们而不重复数据。

有人可以向我解释一下吗?

提前致谢。

4

1 回答 1

1

听起来您希望将 Elasticsearch 用作主数据存储 (KairosDB) 的辅助(和外部)全文索引。

由于 KairosDB 仍然是您的主数据存储,因此您加载到 Elasticsearch 中的每条记录都需要两条信息(至少):

  1. 用于定位相应 KairosDB 记录的主键字段。在映射中,确保设置"store": true, "index": "not_analyzed"
  2. 您希望可搜索的任何字段(在您的示例中,仅name搜索) "store": false, "index": "analyzed"

如果您想进一步减小索引大小,请考虑禁用 _source 字段


然后,您的搜索工作流程将分为两步:

  • 查询 Elasticsearchname:hi并检索每个匹配记录的 KairosDB 主键字段。
  • 使用从 Elasticsearch 返回的关键字段查询/返回 KairosDB 时间序列数据。

但要清楚。您不需要完全复制加载到 Elasticsearch 中的每条 KairosDB 记录。只是可搜索的字段,以及在 KairosDB 中定位原始记录的方法。

于 2015-11-05T15:45:21.200 回答