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或更高版本,则现在可以将normalizers用于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

回到顶部