我想将multi-match
与通配符字段一起使用,如:"fields" : [ "A*", "B*" ],
。
现在,我希望任何A字段中的匹配显示高于B字段中的匹配。
所以我的假设是"fields" : [ "A*^5", "B*^1" ],
应该有效。它没有,结果顺序是相同的,无论5是在A还是B上。
哦,这是亚马逊ES(v1.5.xx)。最终,我希望edgeNgram具有术语查询,但是下面的示例使用stock phrase_prefix:
更短curl -XPUT 'http://localhost:9200/test123'
curl -XPUT http://localhost:9200/test123/type1/001 -d '{"A_01": "Solace"}'
curl -XPUT http://localhost:9200/test123/type1/002 -d '{"B_64": "Solitude"}'
curl -XGET 'http://localhost:9200/test123/_search?explain' -d '{
"query" : {
"multi_match": {
"query" : "Sol",
"fields" : [ "A*^5", "B*^1" ],
"type" : "phrase_prefix"
}
}
}'
我必须忽视某些事情(简单),我很害怕。任何指针都非常赞赏!
答案 0 :(得分:0)
请以这种方式尝试:
"query":{
"filtered":{
"query":{
"bool":{
"should":[
{
"multi_match":{
"query":"Sol",
"type":"cross_fields",
"fields":[
"A*^5","B*^20"
]
}
}
]
}
}
}
}