gpt4 book ai didi

java - Elasticsearch默认不考虑字符串字段并且不给出正确的匹配结果

转载 作者:行者123 更新时间:2023-12-02 11:07:49 26 4
gpt4 key购买 nike

我使用以下查询来查询 ElasticSearch,它根据查询提供结果以及一些其他不相关的数据。

GET items/_search
{
"query" :{
"match": {"code": "*7000-8002-W*"}
}
}

但是如果我像这样查询,我会得到正确的结果:

GET items/_search
{
"query" :{
"match": {"code": "*S6617523*"}
}
}

为什么第一个查询返回一些其他不相关的数据?

最佳答案

此行为是由于 ES 分析字符串的方式造成的。在这种情况下,您需要对 code 的原始字段应用 wildcard 查询,例如

{ 
"query": {
"wildcard": {
"code.keyword": {
"value": "*7000-6000*"
}
}
}
}

Java API 或对此作出响应

QueryBuilders.wildcardQuery("code.keyword","*7000-6000*");

希望这有帮助!!

关于java - Elasticsearch默认不考虑字符串字段并且不给出正确的匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820067/

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