您可以做到的是在q
bool/should查询中包含一些约束以控制排名。
{ "query": { "bool": { "must": { "match": { "name": "vision" <--- match on vision } }, "should": [ { "term": { "name.keyword": { <--- boost exact matches on keyword field (i.e. "vision") "value": "vision", "boost": 3 } } }, { "prefix": { "name.keyword": { <--- boost prefix matches on keyword field (i.e. "vision A" and "vision B" "value": "vision", "boost": 2 } } } ] } }}- 第一个子句将匹配
vision
其name
字段中包含的所有文档。 - 第二个子句将进一步提高其
name.keyword
字段精确包含的文档vision
。name.keyword
通常是一个keyword
字段(以前是一个not_analyzed
string
字段)。 - 第三子句将对
name.keyword
字段以开头的文档提供更高的提升vision
。



