gpt4 book ai didi

Elasticsearch关键字和小写以及聚合

转载 作者:行者123 更新时间:2023-11-29 02:47:54 24 4
gpt4 key购买 nike

我之前存储了一些带有映射“关键字”的字段。但是,它们区分大小写。

要解决这个问题,可以使用分析器,例如

{
"index": {
"analysis": {
"analyzer": {
"keyword_lowercase": {
"tokenizer": "keyword",
"filter": [
"lowercase"
]
}
}
}
}
}

与映射

{
"properties": {
"field": {
"type": "string",
"analyzer": "keyword_lowercase"
}
}
}

但是按术语聚合不起作用。

Caused by: java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [a] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

它适用于映射 type=keyword,但 type=keyword 似乎不允许分析器。

如何将其索引为小写关键字,但仍然可以在不设置 fielddata=true 的情况下使用聚合?

最佳答案

如果您使用的是 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关键字和小写以及聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43492477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com