我有一个使用以下字词的请求:
{
"query": {
"bool": {
"should": [
{
"terms": {
"subjects.id": [
1,
2,
3
], boost: 3
}
},
{
"terms": {
"qualification_type.id": [
3,
5
], boost: 2
}
}
]
}
}
我工作得很好,但是比起只匹配一个主题的文档,匹配三个主题的文档的得分更高。
我的问题是:如果在主题上有一个或多个匹配项,是否有办法强制分数相同?
提前致谢 !
最佳答案
您可以将字词查询转换为过滤器,然后将其包装到constant score query中。例如:
{
"query": {
"bool": {
"should": [{
"constant_score": {
"filter": {
"terms": {
"subjects.id": [1, 2, 3]
}
},
boost: 3
}
}, {
"constant_score": {
"filter": {
"terms": {
"qualification_type.id": [3, 5]
}
},
boost: 2
}
}]
}
}
}
关于elasticsearch - Elasticsearch 查询字词和评分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15110863/