是否可以根据字段的存在来提升文档的相关性?我读过关于function score queries的内容,但我想知道如何考虑存在 - 根据我的理解,field_value_factor
适用于该字段的内容,而不是其存在。
答案 0 :(得分:2)
使用function score query exists-filter作为增强滤镜。
答案 1 :(得分:1)
可以使用功能评分查询,但是评分功能在计算上是昂贵的,并且不是必需的(请注意,下面使用的exists
查询在2014年可能不可用)。
可以执行以下操作:
POST _search
{
"query": {
"bool" : {
"should" : [
{
match_all: {
"boost": 10
}
},
{
"exists": {
"field": "some_field_that_should_exist"
}
}
],
"minimum_should_match" : 2,
}
}
}
最小应该匹配为2,我们说两个子句都必须匹配才能使should子句匹配。这样可以防止将增强应用于没有该字段的文档。
答案 2 :(得分:0)
这可以简化。存在是一个恒定分数查询,boost可以直接与它一起使用。
{
"query":{
"exists":{
"field":"some_field_that_should_exist",
"boost":10
}
}
}