2013-06-25 48 views
0

我用interval =“quarter”做了一个日期直方图facet。在我看来,“2003-07”季度有10项结果。问题是如何使lucene查询/搜索来获取这些文档?按日期搜索,我通常做的:是否可以在elasticsearch/lucene的“quarter”中按日期搜索?

myquery AND (dateField: 2003-07) 

如何通过所有文档的季度内搜索“2003-07”如果能(最好是在人类可读的Lucene的)?

回答

0

问题提到elasticsearch所以我这方面内应答(虽然这个问题仅机身国家“Lucene的查询”)。

用于检索日期范围的弹性搜索查询是我如何处理它的。例如,

{"facets": { 
    "keywords":{ 
    "terms": 
     {"size":100,"field":"text"} 
    } 
    }, 
    "query":{ 
    "filtered":{ 
     "filter":{ 
     "range":{ 
      "created_at":{ 
      "from":"2013-07-01T00:00:00+00:00", 
      "to":"2013-10-01T00:00:00+00:00" 
     } 
     } 
    } 
    } 
} 

这会将结果(以及所有方面)限制在该日期范围内。或者,删除"filtered": {"filter"属性以便有一个不影响方面结果的直接查询。

请注意,您也可以考虑时区。

+0

如果没有好的方法让用户输入一个简单的字符串,这是我希望存在的......如果它是一个好方法。 – Rolando

+0

Rolando,您是否尝试过使用查询字符串查询来执行查询? http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query/如果有效,那么你可以在过滤器查询中使用它来获得相同的结果 – Phil