gpt4 book ai didi

elasticsearch - 用于多个字段的ElasticSearch映射

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

当前,我正在使用动态模板,如下所示:在这里,我将n-gram分析器应用于所有“字符串”字段。
但是,为了提高效率,我只想对特定字段应用n-gram,而不对所有String字段应用n-gram。

{
"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",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "case_insensitive",
"search_analyzer": "search_analyzer"
}
}
}
]
}
}
}

我有这样一个有效载荷:
{
"userId":"abc123-pqr180-xyz124-njd212",
"email" : "someuser@test.com",
"name" : "somename",
.
.
20 more fields
}

现在,我只想将n-gram应用于“电子邮件”和“用户ID”。
我们应该怎么做 ?

最佳答案

由于您无法重命名字段,因此我建议采用以下解决方案,即为nameemail字段复制动态模板。

{
"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": [
{
"names": {
"match_mapping_type": "string",
"match": "name",
"mapping": {
"type": "string",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "case_insensitive",
"search_analyzer": "search_analyzer"
}
}
},
{
"emails": {
"match_mapping_type": "string",
"match": "email",
"mapping": {
"type": "string",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "case_insensitive",
"search_analyzer": "search_analyzer"
}
}
}
]
}
}
}

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

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