gpt4 book ai didi

Elasticsearch 映射似乎不适用于查询

转载 作者:行者123 更新时间:2023-12-02 23:54:44 25 4
gpt4 key购买 nike

我将 Elasticsearch 与 Spring Boot 应用程序一起使用。在这个应用程序中有
我有索引 customer ,并且客户包含字段secretKey。此 key 是由数字和字母组成的字符串 FOOBAR-000
我的目标是通过他的 key 准确地选择一个客户,所以我将映射更改为不分析该字段,但它似乎不起作用。我究竟做错了什么?

这是我的映射

curl -X GET 'http://localhost:9200/customer/_mapping'
{
"customer": {
"mappings": {
"customer": {
"properties": {
"secretKey": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}

但在我运行查询之后
curl -XGET "http:/localhost:9200/customer/_validate/query?explain" -d'
{
"query": {
"query_string": {
"query": "FOOBAR-3121"
}
}
}'

我得到以下解释:
"explanations": [
{
"index": "customer",
"valid": true,
"explanation": "_all:foobar _all:3121"
},
]

最佳答案

据我了解,您有一个名为“customer”的索引,并且在该索引中,有一个包含“customer”字段的文档。在您的情况下,secretKey 应该嵌套在“customer”字段中。由于某些原因,Elasticsearch 决定有一个奇怪的行为,如果您封装对象而不指定它们是嵌套类型。This is the article from the doc that explains the behaviour in details. 如果您使用以下内容指定它:

{
"customer": {
"mappings": {
"_doc": {
"properties": {
"customer": {
"type": "nested"
}
}
}
}
}
}

然后它应该与您的查询一起使用

关于Elasticsearch 映射似乎不适用于查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54361107/

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