gpt4 book ai didi

Elasticsearch动态模板: don’t want field to be analyzed,只想要一个关键字子字段

转载 作者:行者123 更新时间:2023-12-02 22:37:23 26 4
gpt4 key购买 nike

我们正在使用动态模板来指定索引中某些字段的映射。大多数文本字段在模板中未提及,并获取到分析字段和关键字子字段的默认映射:

                      "someField" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword"
}
}
}

哪个好。

索引有一些我们不想分析的字段,只是做了关键字。但是,为了保持一致性,我们希望所有关键字字段都是一个名为“关键字”的子字段,如上所示。所以这个:

"dynamic_templates" : [

{
"someField" : {
"match" : "someField",
"mapping" : {
"type" : "keyword",
"norms" : false
}
}
},

不合适,因为它使“someField”本身成为关键字,而我们希望“someField.keyword”成为关键字字段。但是如果我使用这个模板:

"dynamic_templates" : [

{
"someField" : {
"match" : "someField",
"mapping" : {
"fields": {
"keyword": {
"type": "keyword",
"norms" : false
}
}
}
}
},

已创建分析的“顶级”字段以及关键字子字段:

                          "someField" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword"
}
}
},

有没有办法不映射“someField”字段,只映射“someField.keyword”?我可以为“someField”级别设置 index : false,但用户可能仍会尝试使用它,并想知道为什么它不起作用。

编辑:我尝试按照 haltabush 的建议将 someField 定义为对象类型,但出现错误。使用此模板:

{
"template": "test*",
"order": 1,

"mappings" : {
"_default_" : {

"dynamic_templates" : [
{
"someField" : {
"match" : "someField",
"mapping" : {
"type" : "object",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
]
}
}
}

当我发布这个文档时:

curl -XPUT localhost:9200/test-1/doc/1?pretty -d '
{
"someField" : "some value"
}
'

我收到这个错误:

{
"error" : {
"root_cause" : [
{
"type" : "mapper_parsing_exception",
"reason" : "object mapping for [someField] tried to parse field [someField] as object, but found a concrete value"
}
],
"type" : "mapper_parsing_exception",
"reason" : "object mapping for [someField] tried to parse field [someField] as object, but found a concrete value"
},
"status" : 400
}

最佳答案

您可以创建一个对象:

                     "someField" : {
"type" : "object",
"fields" : {
"keyword" : {
"type" : "keyword"
}
}
},

关于Elasticsearch动态模板: don’t want field to be analyzed,只想要一个关键字子字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289387/

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