is是弹性存储每个别名的索引模板的任何方式。我的意思是使用多个别名(alias1、alias2…)创建索引并为每个别名附加不同的模板。然后对特定别名执行索引/搜索文档。
我这样做的原因是由于多个不同的数据结构(多达50种类型)的文档。
到目前为止我所做的是:
1. PUT /dynamic_index
2. POST /_aliases
{ "actions" : [
{ "add" : { "index" : "dynamic_index", "alias" : "alias_type1" } },
{ "add" : { "index" : "dynamic_index", "alias" : "alias_type2" } },
{ "add" : { "index" : "dynamic_index", "alias" : "alias_type3" } }
]}
3.
PUT_template/template1 {
"index_patterns": [
"dynamic_index"
],
"mappings": {
"dynamic_templates": [
{
"strings_as_keywords": {
"match_mapping_type": "string",
"mapping": {
"type": "text",
"analyzer": "standard",
"copy_to": "_all",
"fields": {
"keyword": {
"type": "keyword",
"normalizer": "lowercase_normalizer"
}
}
}
}
}
],
"properties": {
"source": {
"type": "keyword"
}
}
},
"aliases": {
"alias_type1": {
}
}
}
4. same way to alias_type2 , alias_type3 but different fields ...
索引/搜索:尝试按别名创建和搜索文档,如示例所示:
POST alias_type1/_doc
{
"source": "foo"
, .....
}
POST alias_type2/_doc
{
"source": "foo123"
, .....
}
GET alias_type1/_search
{
"query": {
"match_all": {}
}
}
GET alias_type2/_search
{
"query": {
"match_all": {}
}
}
我实际上看到的是,即使我为每个别名索引文档,在搜索时,我看不到每个别名的结果,所有结果在alias_type1、2甚至索引上都是相同的。
我可以在每种类型(别名)的搜索/索引文档方面实现每个别名的分离逻辑吗?
有什么想法吗?
指向同一索引的别名不能有单独的映射!别名就像指向索引的虚拟链接,所以如果你的别名指向同一索引,你会得到相同的结果。如果你想根据你的数据结构有不同的映射,你需要创建多个索引。
更新您还可以使用基于字段的自定义路由以获取更多信息,您可以在此处查看Elastic官方留档。