我有一个文档列表,如下:
[{'term': 'iphone', 'frequency': 10},
{'term': 'ipad', 'frequency': 100}]
我想使用文档的frequency
值来提高搜索结果的分数。
例如,如果用户输入'ip'
,我希望ipad
出现在搜索结果的顶部,因为它的frequency
值高于iphone
。
这是否可以实现?
使用function_score
和field_value_factor
找到解决方案:
{'query': {
'function_score': {
'query': {
'prefix': {
'term': {
'value': 'ip'
}
}
},
'field_value_factor': {
'field': 'frequency'
}
}
}