Elasticsearch关键字以及小写和聚合
我以前用映射“关键字”存储了一些字段。但是,它们是区分大小写的。
为了解决这个问题,可以使用分析仪,例如
{ "index": {
"analysis": {
"analyzer": {
"keyword_lowercase": {
"tokenizer": "keyword",
"filter": [
"lowercase"
]
}
}
}
}
}
与映射
{ "properties": {
"field": {
"type": "string",
"analyzer": "keyword_lowercase"
}
}
}
但是,按期进行汇总不起作用。
原因:java.lang.IllegalArgumentException:默认情况下,在文本字段上禁用Fielddata。在[a]上设置fielddata
= true,以通过反转取反的索引将字段数据加载到内存中。请注意,这可能会占用大量内存。
它适用于映射type = keyword,但type = keyword似乎不允许分析器。
回答:
如果您使用的是ES
5.2或更高版本,则现在可以将normalizer
s用于keyword
字段。只需像这样声明您的索引设置和映射,就可以了
PUT index{
"settings": {
"analysis": {
"normalizer": {
"keyword_lowercase": {
"type": "custom",
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"type": {
"properties": {
"field": {
"type": "keyword",
"normalizer": "keyword_lowercase"
}
}
}
}
}
以上是 Elasticsearch关键字以及小写和聚合 的全部内容, 来源链接: utcz.com/qa/408818.html