我有一个uid
的文档。我想创建一个索引为not_analyzed
的字段,该字段自动生成为uid
的2个字母前缀(或后缀)。
有没有办法创建这样一个自动计算该字段的模板?
用例用于显示关于Kibana的抽样(过滤器是前缀=' 00'例如)统计信息(因此unique count
聚合将花费更少的时间)。
我已成功使用它,但在将文档写入服务器之前,我在客户端上创建了前缀字段。
答案 0 :(得分:1)
索引前缀可以使用带有keyword
标记生成器和truncate
标记过滤器的自定义分析器构建来完成。以下是如何索引包含字段test_prefix
的前2个字符的字段test
的示例:
curl -XPUT localhost:9200/test-idx -d '{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"analysis": {
"analyzer": {
"prefix": {
"tokenizer": "keyword",
"filter": "prefix"
}
},
"filter": {
"prefix": {
"type": "truncate",
"length": 2
}
}
}
},
"mappings": {
"doc": {
"properties": {
"test": {
"type": "string",
"copy_to": "test_prefix"
},
"test_prefix": {
"type": "string",
"analyzer": "prefix"
}
}
}
}
}'