Elasticsearch - 我想搜索用户搜索的确切生日(例如03221989)和即将到来的生日

时间:2018-05-22 10:44:56

标签: elasticsearch

我的索引中有生日日期字段(格式:MMddyyyy || MMdd)。我想搜索用户搜索的确切生日(例如03221989)和即将到来的生日。我能得到确切的生日。但是对于即将到来的生日,我试过了:

  • 范围查询 - “gte”:“now” - >它将无法工作,因为现在也将有一年的字段,我想找到03221989类型的生日也是
  • 范围查询 - “gte”:“03221989” - >有了这个我能够按月升序排列记录

在我的索引中,我有3条记录:

"Birthday": "03221979"
"Birthday": "05271988"
"Birthday": "04161990"

我希望elasticsearch查询以月份的升序返回我,而不管年份如何。返回数据应为:

"Birthday": "03221979"
"Birthday": "04161990"
"Birthday": "05271988"

1 个答案:

答案 0 :(得分:0)

您可以使用范围查询,并在其中指定合成。

GET _search
{
  "sort": [
    {
      "dateofbirth": {
        "order": "asc"
      }
    }
  ],
  "query": {
    "range": {
      "dateofbirth": {
        "gte": "03221989",
        "format": "MMddyyyy||yyyy||MMdd"
      }
    }
  }
}

像这样。