我通过运行以下行在弹性搜索数据库中的单个类型的索引中添加了几个文档:
curl -XPUT localhost:9200/dt/cc/1 -d '{"cn": "ibm","name": "cat1", "lines": 80 }'
curl -XPUT localhost:9200/dt/cc/2 -d '{"cn": "zf", "name": "fox1", "lines": 90 }'
curl -XPUT localhost:9200/dt/cc/3 -d '{"cn": "zf", "name": "fox2", "lines": 42 }'
curl -XPUT localhost:9200/dt/cc/4 -d '{"cn": "ibm","name": "cat2", "lines": 50 }'
curl -XPUT localhost:9200/dt/cc/5 -d '{"cn": "ibm","name": "cat3", "lines": 20 }'
curl -XPUT localhost:9200/dt/cc/6 -d '{"cn": "zf", "name": "fox3", "lines": 20 }'
curl -XPUT localhost:9200/dt/cc/7 -d '{"cn": "ibm","name": "cat4"}'
curl -XPUT localhost:9200/dt/cc/8 -d '{"cn": "zf", "name": "fox4"}'
我知道如何计算cn
为“zf”的文档中字段“行”的平均值,实际上是51。
现在,我正在寻找一种方法,将另一个名为difference_to_zf_mean_lines
的字段添加到'cn'为'ibm'的文档中,表示'lines'值与之前计算的均值之间的差异(51)。
这是我想要的结构:
'{"cn": "ibm","name": "cat1", "lines": 80, difference_to_zf_mean_lines: 29}'
'{"cn": "ibm","name": "cat2", "lines": 50, difference_to_zf_mean_lines: -1}'
'{"cn": "ibm","name": "cat3", "lines": 20, difference_to_zf_mean_lines: -31}'
但我想知道elasticsearch是否提供了一种计算基本操作的方法,例如将一个新字段添加到索引中的文档中。