gpt4 book ai didi

elasticsearch - Elasticsearch “word”数据类型:映射不正确

转载 作者:行者123 更新时间:2023-12-03 01:00:16 26 4
gpt4 key购买 nike

我是 flex 搜索的新手,从最近几天开始就一直在进行尝试。我无法进行正确的映射,因为我在映射中提到的所有数据类型都被映射到“word”类型而不是各个类型。这是我完成的映射

POST my_index
{
"settings" : {
"analysis" : {
"analyzer" : {
"lowercase_analyzer" : {
"type" : "custom",
"tokenizer" : "keyword",
"filter" : ["lowercase"]
}
}
}
},
"mappings" : {
"my_type" : {
"properties" : {
"name" : {"type" : "string" ,"index" : "not_analyzed" },
"field0" : {
"properties" : {
"field1" : {"type" : "boolean" },
"field2" : {"type" : "string" },
"field3" : {"type" : "date", "format" : "yyyy-MM-dd HH:mm:ss SSSSSS" }
}
}
}
}
}
}

为了测试映射,我使用“_analyze” api,如下所示
GET my_index/_analyze
{
"field" : "name",
"text" : "10.90.99.6"
}

这给我以下结果
{
"tokens": [
{
"token": "10.90.99.6",
"start_offset": 0,
"end_offset": 10,
"type": "word",
"position": 0
}
]
}

我期望结果中的“类型”为“字符串”。但是我不明白为什么它返回“单词”类型。当我使用_analyze api将 bool(boolean) 类型或时间戳类型的数据发布到嵌套字段中时,其他字段也会发生同样的情况。
GET my_index/_analyze
{
"field" : "field0.field1",
"text" : "true"
}

结果
 {
"tokens": [
{
"token": "true",
"start_offset": 0,
"end_offset": 4,
"type": "word",
"position": 0
}
]
}

我在哪里做错 map 。

同样,在 elastic search reference api中没有这样的“word”数据类型。

最佳答案

那根本不是一个错误,您做对了。映射中的type的概念和type API中的_analyze的概念是不同的。
_analyze API将仅返回您要分析的字段中存在的所有 token ,并且每个 token 都键入“word”。这来自Lucene TypeAttribute 类,您可以看到只有一个默认值"word"

关于elasticsearch - Elasticsearch “word”数据类型:映射不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989359/

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