是否有一种方法可以将Elasticsearch数据字段添加到索引映射中,从而使其始终返回恒定的数值?
我知道我可以只添加一个数字数据类型,然后使用常量重新索引所有内容,但是我想避免重新索引,并且我也希望能够动态更改常量而无需重新索引。
动机:我们的集群有很多不同的索引。由于各种原因,我们通常一次搜索多个索引。但是,当搜索多个索引时,我们的搜索逻辑仍然需要对每个索引稍有不同。我们可以这样做的一种方法是,向每个索引添加一个常量数字字段,然后在搜索查询中使用该字段。
但是,因为这是一个常量,所以我们似乎不需要重新索引所有内容(为每个记录添加一个常量值似乎毫无意义)。
答案 0 :(得分:1)
您可以将_meta
field用于此目的:
PUT index1
{
"mappings": {
"_meta": {
"constant": 1
},
"properties": {
... your fields
}
}
}
PUT index2
{
"mappings": {
"_meta": {
"constant": 2
},
"properties": {
... your fields
}
}
}
您可以随时更改该常数,而无需重新编制任何索引。该值存储在索引级别,并且可以通过简单地使用GET index1,index2/_mapping