【发布时间】:2017-04-27 00:15:53
【问题描述】:
在我索引到 Elasticsearch 的数据中,我有代表年份范围的字段,例如 1948- 和 1999-2002
有没有办法让 Elastic 解释这些值以使范围内包含的任何年份都可搜索?
示例:
文档有一个名为 yearRange 的字段,其中包含值 1999-2001
如果我搜索q=yearRange:2000,我希望文档匹配。
我可以看到你可以通过让脚本生成一个年份数组来解决它,但我想知道是否有其他方法。
Elastic 2.4 是正在使用的版本。
【问题讨论】:
-
我认为这在索引时处理得更好。意思是,做正确的事并在两个不同的领域中索引那些年。然后运行范围查询会容易得多,性能也会好得多。
-
另外,如果有机会升级到 ES 5,范围类型是 supported natively
-
如果您分别存储“开始”和“结束”年份,那么您可以为此创建一个过滤器。不过,处理缺失的开始和结束值会有点棘手。
标签: elasticsearch