我是Elastic Search的新手。 我有一个名为" actual"的索引字段。这是浮动类型。 我需要一个新领域"派生"这是源自"实际"一些计算后的字段。 例如,derived.value =((actual.value / 120) - 30)x 2 我需要在弹性搜索中获得所需的字段,因为, - 我想根据derived.value对弹性搜索结果进行排序 - 我想根据derived.value E.g检索结果。如果derived.value>则仅检索文档。 20
我知道我们也可以使用弹性搜索中的脚本字段来完成此操作。 我的问题是,根据获取时间哪个更有效? 是将新索引字段添加到弹性搜索存储还是使用脚本字段?
更新 公式变得非常复杂, derived.value =((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的当前值作为参数传递并在运行中进行计算。
我目前有一万份文件,它的大小可以增长更多。 除了有脚本字段之外,还有其他任何乐观的方法吗?
答案 0 :(得分:1)
它肯定应该是增加的领域。每次搜索执行时,每个文档都需要执行脚本,这是CPU密集型的。在前者中,我们只需要检索它应该更快。