Elasticsearch中的抽象时态搜索

时间:2014-04-16 04:21:44

标签: date datetime elasticsearch

我无法解决问题的最佳解决方法,并且可能会使用一些外部意见。在我的ES数据中,我有过去约100年的新闻文章。我试图找出按日期属性搜索文章的最佳方式,而不是日期范围。以下是一些for-instances:

  • 在这一天获得文章"",例如4月15日,不分年份。
  • 搜索特定时段之间写的文章,例如上午9点至下午5点,或一周中的几天,例如星期六和星期日。
  • 搜索6月,7月和8月期间撰写的文章(无论年份如何)。

......等等。我提出的最佳解决方案是将这些属性分别存储在索引中,例如

{
  "publish_date": {
    "full": "2014-04-15 12:34:56",
    "year": 2014,
    "month": 4,
    "monthname": "april",
    "day": 15,
    "dayofweek": "tuesday",
    "dayofyear": 105,
    "hour": 12,
    "minute": 34,
    "second": 56,
    "week": 16
  }
}

我对此解决方案不满意,我想与之分手。

有关您将采取哪些不同的做法,或者您如何解决此问题的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,你为什么不高兴呢?它非常精细,符合“非规范化”的标准。你可能需要在ES(以及其他非规范化/ nosql数据库)中进行文档建模时开始佩戴

话虽如此,您不需要在自己的索引代码中编写不同的字段。相反,你可以去: