我有如下弹性搜索数据存储,我需要通过这些数据编写多搜索ES查询,精确匹配和精确匹配+ *(通配符)
[
{
"id": "123",
"name": "test123 abc bct",
"externalObj": {
"id": "abc 123"
}
},
{
"id": "124",
"name": "test124 abc bct",
"externalObj": {
"id": "abc 124"
}
}
]
目前我已经写了如下查询,
{
"query": {
"query_string": {
"fields": [
"name^5",
"id",
"externalObj.*"
],
"query": "(test124 abc)",
"default_operator": "AND"
}
}
}
以上查询在完全匹配的情况下工作正常,但我还需要获取部分搜索的数据和响应的最大相关分数。那个东西不适用于这个查询。
例如:“查询”:“test124 ab”
有人可以帮我解决上述问题吗?
答案 0 :(得分:0)
有 2 个选项可以实现您的目标。您可以选择其中之一来使用:
mouseleave
设置为 default_operator
(或者只是简单地将其删除,因为默认值为 OR
)。OR
{
"query": {
"query_string": {
"fields": [
"name^5",
"id",
"externalObj.*"
],
"query": "test124 a"
}
}
}
test124 a*