我有这样的文件
[{ name : 'Mark'}, { name : 'Aaron Mark'}, { name : 'Jane'}, { name : 'Mary'}, {'Mark Joseph'}]
每次我对名称进行通配符搜索:' Mar *"它总是返回
[{ name : 'Mark'}, {name : 'Aaron Mark'}, { name : 'Mary'}, {name :'Mark Joseph'}]
但我想要的结果是这样的
[{name : 'Mark'}, {name:'Mark Joseph'}, {name:'Mary'}, {name:'Aaron Mark'}]
由于
答案 0 :(得分:1)
您可以尝试下面的查询组合以获得所需的订单
"bool": {
"should": [
{
"wildcard": {
"name": {
"value": "*Mar*"
}
}
},
{
"prefix": {
"name": {
"value": "Mar*",
"boost": 2
}
}
},
{
"term": {
"name": {
"value": "Mar",
"boost": 4
}
}
}
]
}
这可能不完全给出结果,因为你指定'coz“Mar *”无法区分“Mark”和“Mary”。但它是为了让你了解可以做些什么。