我想完成以下任务(表示为等效的SQL查询)
WHERE field1 LIKE 'FOO%' OR field2 LIKE 'FOO%'
但是说 boost
field2(即如果文档只有两个字段中的一个)匹配field2的文档被提升
我如何在Elasticsearch中实现这一目标?我无休止地搜索文档,并且不断变得更加困惑
我试过了:
POST securities/_search
{
"query": {
"bool": {
"minimum_should_match": 1,
"should": [
{
"match_phrase_prefix": {
"field2": "FOO"
}
},
{
"match_phrase_prefix": {
"field2": "FOO"
}
}
]
}
}
}
但是我无法在 bool.should[*].match_phrase_prefix 内指定提升
我看到有一个 boost 属性我可以在 bool 级别指定,但我不确定如何应用
1 回答
为了使它工作,你应该改变这个:
对此:
这应该是一个适当的提升语法 .