怎么又是你

ES索引设计问题,能不能给索引打上标签,来标明一些信息呢

Elasticsearch | 作者 zj_likang | 发布于2020年05月21日 | 阅读数:2011

最近有个需求:A项目去创建索引并写入数据,B 项目去查询数据,
 
B项目为了区分 数据的 来源信息等,需要A项目在数据里写入来源地址等信息,A项目会针对不同的来源地址,创建不同的索引,就是每个索引的来源信息 都是相同的,但是A项目不会通知B 项目任何信息,
那么A有没有办法把这个数据提取出来,给索引打上一个标签,而不是写到每一条数据里去,查询起来不太方便,也占用了没必要的空间
已邀请:

zj_likang

赞同来自:

还有一个问题,就是这个信息,如果是写到数据里,他没有数据的时候,我就拿不到来源地信息了,我知道他创建了一个索引,但这个索引的数据准备从那里来,我完全不知道情况,但我又想查到来源地列表

envy666

赞同来自:

A在创建索引的时候用来源信息定义索引名称不就行了嘛

liuxg - Elastic

赞同来自:

你可以参考文章 “Elasticsearch:添加 metadata 到 mapping 中” https://elasticstack.blog.csdn ... 31557

su_san - 90后小苏

赞同来自:

1.B项目每次仅查固定来源信息的索引吗?
    如果是这样, 那就可以采用索引模板的形式. 索引模板对索引`A_{地域信息}`有效. 
    业务层来了数据根据地域信息创建索引, B项目查询时根据地域信息构建索引进行查询.
2.B项目每次查询如果涉及多个地域的索引, 且查询结果需要区分地域信息的话
    此种情况的话, 感觉还是tag形式好一些. 如果tag相对document整体而言较小, 占用的空间感觉并不是很浪费.
    比如B项目需要3个地域的数据 可以直接terms来过滤即可.
 
 

要回复问题请先登录注册