【问题标题】:Boost filter in elasticsearch弹性搜索中的增强过滤器
【发布时间】:2014-08-04 15:30:17
【问题描述】:

我有一个书籍索引,其中包含标题、描述、作者姓名、图书馆 ID(书籍所在的位置)。我想查询与提供的字符串匹配的书籍,并且我还提供了一个 library_ids 数组用于排名。属于提供的 library_ids 列表的 library_ids 的结果应该排名更高(更高的分数)。

是否可以执行这种类型的查询?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以尝试使用 ids 查询

    {
       "query": {
          "function_score": {
             "functions": [
                {
                   "boost_factor": "50",
                   "filter": {
                     "ids": {
                        "values": [
                           "library_ids"
                        ]
                     }
                   }
                }
             ],
             "query": {
                "match_all": {}
             },
             "score_mode": "sum"
          }
       }
    }
    

    library_id 必须是“_id”字段。

    【讨论】:

    • 谢谢你的回答,这正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多