我想完成以下任务(表示为等效的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 级别上指定,但是我不确定如何应用
最佳答案
为了使其正常工作,您应该更改此设置:
"match_phrase_prefix": {
"field2": "FOO"
}
对此:
"match_phrase_prefix": {
"field2": {
"value": "FOO",
"boost": 2.0
}
}
这应该是增强的正确语法。
关于elasticsearch - Elasticsearch多个前缀查询或匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52316492/