gpt4 book ai didi

elasticsearch - 在Elasticsearch中映射多个字段

转载 作者:行者123 更新时间:2023-12-03 01:46:02 25 4
gpt4 key购买 nike

我想将以下模板应用于所有字段。
目前,我仅将此映射应用于“名称”字段。

可以说我还有一些其他字段,例如:“resedential_address”,“work_address”,“birth_place”,“DOB”等。

我该如何有效地做到这一点。我知道我可以对所有字段重复相同的块。
还是有一种方法可以将以下模板应用于所有“文本”字段?

{
"template": "*",
"settings": {
"analysis": {
"filter": {
"ngram_filter": {
"type": "ngram",
"min_gram": 1,
"max_gram": 25
}
},
"analyzer": {
"case_insensitive": {
"tokenizer": "whitespace",
"filter": [
"ngram_filter","lowercase"
]
},
"search_analyzer":{
"type": "custom",
"tokenizer": "whitespace",
"filter": "lowercase"
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"name": {
"type": "string",
"analyzer": "case_insensitive",
"search_analyzer": "search_analyzer"
}
}
}
}
}

提前致谢!

最佳答案

如果要使用提供的自定义映射来映射所有text字段,请使用dynamic templates功能,如下所示:

{
"template": "*",
"settings": {
"analysis": {
"filter": {
"ngram_filter": {
"type": "ngram",
"min_gram": 1,
"max_gram": 25
}
},
"analyzer": {
"case_insensitive": {
"tokenizer": "whitespace",
"filter": [
"ngram_filter","lowercase"
]
},
"search_analyzer":{
"type": "custom",
"tokenizer": "whitespace",
"filter": "lowercase"
}
}
}
},
"mappings": {
"my_type": {
"dynamic_templates": [
{
"strings": {
"match_mapping_type": "string",
"mapping": {
"type": "string",
"analyzer": "case_insensitive",
"search_analyzer": "search_analyzer"
}
}
}
]
}
}
}

上面的模板将为所有字符串字段(如 name, residential_address, work_address ...)创建相同的自定义映射

关于elasticsearch - 在Elasticsearch中映射多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894647/

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