gpt4 book ai didi

elasticsearch - Elasticsearch匹配查询多词不精确词

转载 作者:行者123 更新时间:2023-12-03 02:32:58 25 4
gpt4 key购买 nike

我是 Elasticsearch 的新手,我很累在索引文档中查找数据。就像我有4个文档,在2个字段中有fullName, userName-

{
"_index": "users",
"_type": "users",
"_id": "NwV2GG8BmEFrScbl3IE8",
"_score": 1,
"_source": {
"fullName": "Max Payne",
"id": 1,
"userName": "MaxP"
}
},
{
"_index": "users",
"_type": "users",
"_id": "MgV2GG8BmEFrScbl3IE8",
"_score": 1,
"_source": {
"fullName": "Thomas John",
"id": 6,
"userName": "ThomesJ"
}
},
{
"_index": "users",
"_type": "users",
"_id": "MgD2TG1BmEFrrfbs3RT9",
"_score": 1,
"_source": {
"fullName": "John well",
"id": 7,
"userName": "ThomesW"
}
},
{
"_index": "users",
"_type": "users",
"_id": "QwR58DTBmEFrScbl8op4",
"_score": 1,
"_source": {
"fullName": "Max smith",
"id": 1,
"userName": "MaxS"
}
}

如果搜索
情况1
'妈'那我需要3个证件

情况二
'Max',那么我需要2个文件

情况3
'Max s',那么我需要1个文档(Max Smith)
'Max p'然后我需要1个文档(Max Payne)

案例4
“约翰”,那我需要2个文件

我尝试使用此方法,如果完整字符串匹配,则找到数据,否则找不到数据。
"bool" : {
"should": {
"query_string": {
"query": '*'+keyword+'*', // "query": keyword+'*',
"fields": [ "fullName", "userName" ]
},
},
}

另外,我尝试与此但不工作
"term": {
"fullName": {
"value": keyword
}
}

我在NodeJs Client中使用 Elasticsearch 6.3

最佳答案

您需要尝试此查询并根据您的不同情况使用通配符,您将获得所需的预期结果

{
"query": {
"wildcard": {
"fullName": {
"value": "keyword"
}
}
}
}

例如情况1:“值”:“* ma *”
情况2:“值”:“最大值”,类似。

希望这会有所帮助。

关于elasticsearch - Elasticsearch匹配查询多词不精确词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562702/

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