0

嗨 StackOverflowcrowd,

我目前正在为我的网站开发弹性搜索。我的问题是:是否可以根据字段的值来提升查询。

示例:我有一个名为 premiumlevel 的字段。如果“数据行”包含 4 的保费级别,则提升值应为 40,如果为 3,则提升值应为 30,依此类推。提升 = 字段值乘以 10

有没有办法实现这样的查询?我看到了一种对具有范围的日期进行类似查询的方法,但我从未找到将字段的实际值用于提升值计算的示例。

编辑:

我想我刚刚找到了我的问题的解决方案。如果我获得了正确的文档,则可以使用 CustomScore 查询来实现我的目标。完成测试后,我将使用我的代码片段编辑此答案。

这是文档段: http ://www.elasticsearch.org/guide/reference/query-dsl/custom-score-query.html

PS:老实说,不允许新用户在 8 小时之前回答自己的问题的规则是不合逻辑的/没有效率的。

4

1 回答 1

0

我能想到的唯一方法是实际索引提升值:

来自文档:http ://www.elasticsearch.org/guide/reference/mapping/boost-field.html

{
  "tweet" : {
    "_boost" : {"name" : "_boost", "null_value" : 1.0}
  }
}

上面的映射定义了一个名为 _boost 的字段的映射。如果 _boost 字段存在于索引的 JSON 文档中,则其值将控制索引文档的提升级别。

于 2013-01-21T03:16:46.100 回答