根据字段值添加查询时间权重/提升

时间:2017-04-12 15:02:58

标签: elasticsearch

我目前正在使用elasticsearch版本2.4并希望根据我调用的字段' type'来调整我的结果集。使用查询时间提升或加权。

例如

如果字段的值'键入'是"船"添加加权或增加4

如果字段的值'键入'是" Caravans"添加加权或增加3

因此,在搜索结果中的大篷车之前出现与查询字符串匹配的船只。

我发现到目前为止我所阅读的文档在过滤器,功能和功能评分方面都非常复杂。如果有人可以为我的方案提供一个示例让我离开,我会很感激。

1 个答案:

答案 0 :(得分:0)

您应该使用constant_score查询和boost选项来确定优先级。

{
  "query": {
    "bool": {
        "should": [
            {
                "constant_score": {
                    "boost": 4,
                    "query": {
                        "match": {
                            "description": "Boats"
                        }
                    }
                }
            },
            {
                "constant_score": {
                    "boost": 3,
                    "query": {
                        "match": {
                            "description": "Caravans"
                        }
                    }
                }
            }
        ]
    }
  }
}