有什么方法可以boost根据类型在同一字段上搜索结果?
boost
我的基本提升是这样的:
GET _search { "query": { "simple_query_string": { "query": "mangan", "fields":["_all", "title^6"] } } }
但是对于其他一些文档,我希望标题不太重要,因此我尝试使用type作为前缀:
GET _search { "query": { "simple_query_string": { "query": "mangan", "fields":[ "_all", "DocumentationPage.title^6", "DocumentationPage.title^6"] } } }
但是,这根本没有助益。作为最后的选择,我可以使用Funcsion / Script Score bu来避免这种情况。
例如,假设文档仅包含title字段。
title
实现此目的的一种简单方法是将OP中的查询重写为dis- max查询。
elasticsearch 5.x的示例:
{ "query": { "dis_max": { "queries": [ { "simple_query_string": { "fields": [ "_all" ], "query": "mangan" } }, { "bool": { "filter": { "type": { "value": "DocumentationPage" } }, "must": [ { "simple_query_string": { "fields": [ "title^6" ], "query": "mangan" } } ] } } ] } } }