gpt4 book ai didi

elasticsearch - 提供空字符串时,Elasticsearch多重匹配不会返回所有结果

转载 作者:行者123 更新时间:2023-12-02 23:45:34 31 4
gpt4 key购买 nike

我总共有1783条记录,如果没有提供 multi_match 查询,我希望ES返回所有记录(searchObject.query = '')

如果我将空数组传递给query.bool,则可以做到这一点。 应该为,因此理论上我可以根据searchObject.query值更新下面的ES对象,但是我不确定这是否是一个好主意。

{
_source: [
'id',
'event',
'description',
'element',
'date'
],
track_total_hits: true,
query: {
bool: {
should: [{
multi_match:{
query: searchObject.query
fields: ["element","description","nar.*","title","identifier"]
}
}],
filter: []
}
},
highlight: { fields: { '*': {} } },
sort: [],
from: 0,
size: 10
}

有什么建议么?

最佳答案

您可以将 match_all 附加到should:

{
"_source": [
"id",
"event",
"description",
"element",
"date"
],
"track_total_hits": true,
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "",
"fields": [
"line",
"element",
"description",
"nar.*",
"title",
"identifier"
]
}
},
{
"match_all": {}
}
],
"filter": []
}
},
"highlight": {
"fields": {
"*": {}
}
},
"sort": [],
"from": 0,
"size": 10
}

那就是通常的目的。恕我直言,在执行ES请求之前,应检查空字符串。我假设它来自自动完成等。

关于elasticsearch - 提供空字符串时,Elasticsearch多重匹配不会返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61502579/

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