如何在_source中对字段进行排序以进行搜索?

时间:2014-08-06 08:19:15

标签: elasticsearch

我要求我们从特定查询的搜索结果中创建CSV。问题陈述是:

对弹性搜索中存储的值存在某些问题。例如,A值为1或0,B值为1和0,依此类推。现在当我检索响应时,_search中的问题(字段)不是为了例如A,C,D,F,B。我们想要的是要添加到查询中的内容,以便我们有一个排序的字段列表in_source,如A,B,C,D,以便它可以直接映射到CSV。 elasticsearch是否提供此类API?

1 个答案:

答案 0 :(得分:0)

天真的,如果你想放

{
  ...
  "query": {...},
  "sort": [
    {
      "field_A": {
        "order": "asc"
      }
  ],
  ...
}

您将获得一个例外:

找不到用于排序的[field_A]映射

幸运的是,Elasticsearch提供了一种机制来忽略没有映射并且不按其排序的字段:

{
  ...
  "query": {...},
  "sort": [
    {
      "field_A": {
        "order": "asc",
        "unmapped_type" : "long" // new here
      }
  ],
  ...
}

此参数的值用于确定要发出的排序值。

在此处Ignoring Unmapped Fields | Elasticsearch Reference

了解更多信息