在我索引到Elasticsearch的数据中,我有表示年份范围的字段,例如1948-
和1999-2002
有没有办法让Elastic解释这些值以使搜索范围中包含的任何年份都可搜索?
示例:
文档有一个名为yearRange的字段,其中包含值1999-2001
如果我搜索q=yearRange:2000
,我希望文档匹配。
我可以看到你可以通过让脚本生成一个多年的数组来解决它,但我想知道是否还有其他方法。
Elastic 2.4是正在使用的版本。
答案 0 :(得分:0)
如果年份是连续的,那么您应该存储开始年份和结束年份,并且您可以轻松地对其进行范围查询。如果日期不是连续的,那么您可以将每个区间表示为嵌套文档,并以相同的方式对其进行查询。
每年生成并将其放入数组中将产生额外的负载,因为现在每年都会要编入索引,将为他们创建doc_values,你的_source将会很重等等。如果你可以用更少的数据执行查询,那么你应该去做。