gpt4 book ai didi

indexing - elasticsearch Not_analyzed 和已分析

转载 作者:行者123 更新时间:2023-12-02 18:55:56 24 4
gpt4 key购买 nike

您好,对于某些要求,我已将所有索引设为 not_analyzed

{
"template": "*",
"mappings": {
"_default_": {
"dynamic_templates": [
{
"my_template": {
"match_mapping_type": "string",
"mapping": {
"index": "not_analyzed"
}
}
}
]
}
}
}

但现在根据我们的要求,我必须对某些字段进行分析。并将其余字段保留为未分析

我的数据类型为:

{   "field1":"Value1",
"field2":"Value2",
"field3":"Value3",
"field4":"Value3",
"field5":"Value4",
"field6":"Value5",
"field7":"Value6",
"field8":"",
"field9":"ce-3sdfa773-7sdaf2-989e-5dasdsdf",
"field10":"12345678",
"field11":"ertyu12345ffd",
"field12":"A",
"field13":"Value7",
"field14":"Value8",
"field15":"Value9",
"field16":"Value10",
"field17":"Value11",
"field18":"Value12",
"field19":{
"field20":"Value13",
"field21":"Value14"
},
"field22":"Value15",
"field23":"ipaddr",
"field24":"datwithtime",
"field25":"Value6",
"field26":"0",
"field20":"0",
"field28":"0"
}

如果我按照建议将模板更改为类似的内容

{
"template": "*",
"mappings": {
"_default_": {
"properties": {
"filed6": {
"type": "string",
"analyzer": "keyword",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}}},
"dynamic_templates": [
{
"my_template": {
"match_mapping_type": "*",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}
]
}
}
}

然后我在插入数据时出现错误

{"error":"MapperParsingException[无法解析 [field19]]; 嵌套:ElasticsearchIllegalArgumentException[未知属性 [field20]];","status":400}

最佳答案

简而言之,您想要更改索引的映射。

  • 如果您的索引不包含任何数据(我认为这不是情况),那么你可以简单地删除索引并再次创建它新的映射。
  • 如果您的索引包含数据,您将必须对其进行重新索引

重建索引的步骤:

  • 将现有索引中的所有数据放入虚拟索引。
  • 删除现有索引。生成新的映射。
  • 将数据从虚拟索引传输到新创建的索引。

您还可以查看 elastic search 别名 here

This链接可能也有用。

如果您想同时使用已分析未分析相同的字段,则必须使用多字段使用

"title": {
"type": "multi_field",
"fields": {
"title": { "type": "string" },
"raw": { "type": "string", "index": "not_analyzed" }
}
}

This供您引用。

要在dynamic_templates中定义multifield,请使用:

{
"template": "*",
"mappings": {
"_default_": {
"dynamic_templates": [
{
"my_template": {
"match_mapping_type": "string",
"mapping": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
]
}
}
}

引用this了解更多相关信息。

关于indexing - elasticsearch Not_analyzed 和已分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082200/

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