【发布时间】:2015-08-25 14:28:47
【问题描述】:
我是弹性搜索的新手。 我有一个名为“实际”的索引字段,它是浮点类型。 我需要一个新字段“派生”,它是经过一些计算后从“实际”字段派生的。 例如,derived.value = ((actual.value/120) - 30) x 2 我需要弹性搜索中的所需字段,因为, - 我想根据 derived.value 对 Elastic Search 结果进行排序 - 我想根据派生值检索结果。如果 derived.value > 20,则仅检索文档
我知道我们也可以在弹性搜索中使用脚本字段来做到这一点。 我的问题是,根据获取时间,哪个更有效? 向弹性搜索存储添加新的索引字段还是使用脚本字段?
更新: 公式变得非常复杂, 派生值 = ((actual.value/a) - b) x (c - d/2)
这里,“a”可以取 6 个不同的值,“b”可以取 8 个不同的值,“c”可以取 12 个不同的值,“d”可以取 3 个不同的值。 如果我要预先计算值,那么我需要在一个文档中添加额外的 (6 x 8 x 12 x 3) 字段来检索值而无需任何计算。
但如果我使用的是脚本字段,那么我可以在搜索时将 a、b、c、d 的当前值作为参数传递并即时计算它们。
我目前有一万个文档,它的大小可以增长更多。 除了拥有脚本字段之外,还有其他乐观的方法吗?
【问题讨论】:
标签: elasticsearch