基于字段的动态映射elasticsearch
Fields based dynamic mapping elasticsearch
我可以使用通配符模式来确定 elasticsearch 的索引分析器吗?
例如:
"properties":
{
"0_*" : {"type": "string", "index_analyzer": "standard" } ,
"1_*" : {"type": "string", "index_analyzer": "my_analyzer"}
}
所以现在如果我索引文档时有一个新字段,比如
{
"0_title" : "some string", // should use standard analyzer
"1_title" : "my anazlyer string" // should use my_analyzer
}
有没有办法实现这个?
是的,您只需要使用索引模板即可。
您可以找到有关动态模板的更多信息 here
使用索引模板,您可以按如下方式注入规则 -
{
"person": {
"dynamic_templates": [
{
"template_0": {
"match": "0_*",
"mapping": {
"type": "string",
"index_analyzer": "standard"
}
}
},
{
"template_1": {
"match": "1_*",
"mapping": {
"type": "string",
"index_analyzer": "my_analyzer"
}
}
}
]
}
}
我可以使用通配符模式来确定 elasticsearch 的索引分析器吗?
例如: "properties":
{
"0_*" : {"type": "string", "index_analyzer": "standard" } ,
"1_*" : {"type": "string", "index_analyzer": "my_analyzer"}
}
所以现在如果我索引文档时有一个新字段,比如
{
"0_title" : "some string", // should use standard analyzer
"1_title" : "my anazlyer string" // should use my_analyzer
}
有没有办法实现这个?
是的,您只需要使用索引模板即可。 您可以找到有关动态模板的更多信息 here 使用索引模板,您可以按如下方式注入规则 -
{
"person": {
"dynamic_templates": [
{
"template_0": {
"match": "0_*",
"mapping": {
"type": "string",
"index_analyzer": "standard"
}
}
},
{
"template_1": {
"match": "1_*",
"mapping": {
"type": "string",
"index_analyzer": "my_analyzer"
}
}
}
]
}
}