如何在Elasticsearch中按计算值排序

阿尔瓦罗普

我想将elasticsearch用作搜索引擎。我正在将记录从mysql复制到elasticsearch,当我查询elasticsearch时,我想使用Elastic中的数据计算一个值并使用它对结果进行排序

我的索引如下:

  {
    "busquedas" : {
      "aliases" : { },
      "mappings" : {
        "coche" : {
          "properties" : {
            "coeff_e" : {
              "type" : "double"
            },
            "coeff_r" : {
              "type" : "double"
            },
            "desc" : {
              "type" : "string"
            }
          }
        }
      },
      "settings" : {
        "index" : {
          "creation_date" : "1460116924258",
          "number_of_shards" : "5",
          "number_of_replicas" : "1",
          "uuid" : "N6jhy_ilQmSb6og16suZ4g",
          "version" : {
            "created" : "2030199"
          }
        }
      },
      "warmers" : { }
    }

}

我想计算每条记录的值

myCustomOrder = (coeff_e + coeff_r) * timestamp

并使用它对结果进行排序

{
  "sort" : [
      { "myCustomOrder" : {"order" : "asc"}},
      "_score"
  ],
  "query" : {
      "term" : { ... }
  }
}

我知道我可以使用groovy来计算值,但是我只能使用它来过滤,如示例中所示

{
  "from": 10,
  "size": 3,
  "filter": {
    "script": {
      "script": "doc['coeff_e'].value < 0.5"
    }
  }
}

在此先感谢您,我完全是Elasticsearch的新手:D

安德烈·斯特凡(Andrei Stefan)

与过滤相同。看一下本文档的这一部分一旦您已经了解脚本:-),它应该是不言自明的。

为了完整起见:

{
    "query" : {
        ....
    },
    "sort" : {
        "_script" : {
            "type" : "number",
            "script" : {
                "inline": "doc['field_name'].value * factor",
                "params" : {
                    "factor" : 1.1
                }
            },
            "order" : "asc"
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Elasticsearch中按孩子数对父母排序

来自分类Dev

如何在NEST for Elasticsearch中按_geo_distance排序?

来自分类Dev

在XSLT中按计算值排序

来自分类Dev

如何在MySQL中按各种值排序?

来自分类Dev

如何在MongoDB中按字段值排序

来自分类Dev

如何在Laravel中按特定值排序?

来自分类Dev

如何在JavaScript中按值对地图排序?

来自分类Dev

如何在PHP中按值对多维数组进行排序

来自分类Dev

如何在Julia中按值对字典排序?

来自分类Dev

如何在hadoop中按值对字数进行排序?

来自分类Dev

如何在ElasticSearch中按字段值过滤?

来自分类Dev

如何在Pandas中不是按行而是按列对值排序?

来自分类Dev

当要排序的值是计算结果时,如何在Vue中对列进行排序

来自分类Dev

如何按基于Django中其他模型计算的值排序?

来自分类Dev

如何在Elasticsearch中同时按父字段和嵌套字段排序?

来自分类Dev

如何按字典中列表的值排序

来自分类Dev

如何在 Scala 中按值对 RDD 数据(键、值)进行排序?

来自分类Dev

如何在MySQL中按公式排序

来自分类Dev

如何在PHP中按容量排序

来自分类Dev

如何在MySQL中按公式排序

来自分类Dev

如何在python中按数字排序?

来自分类Dev

如何在PHP中按容量排序

来自分类Dev

如何在ElasticSearch中按结果分组

来自分类Dev

在Elasticsearch中,如何在嵌套数组中按值分组

来自分类Dev

如何按计算字段排序?

来自分类Dev

在elasticsearch中按列表排序

来自分类Dev

如何在对象中按值创建排序索引数组

来自分类Dev

如何在PHP中按最大相同值对数组排序

来自分类Dev

如何在perl中按选定的值对数组进行排序

Related 相关文章

热门标签

归档