elasticsearch 根据条件添加字段和值
我试图根据现有索引的条件添加字段和值。 上下文:1 000 000“行”和一个索引 最有效的方法是什么:
elasticsearch 根据条件添加字段和值,
elasticsearch,
elasticsearch,我试图根据现有索引的条件添加字段和值。 上下文:1 000 000“行”和一个索引 最有效的方法是什么: If field_a = 1 and (field_b > 0 or field_c > 0 or field_d > 0) then add new field field_e with value = 1 else add new field field_e with value = 0 这完全可以通过以下方式实现:
If field_a = 1 and (field_b > 0 or field_c > 0 or field_d > 0)
then
add new field field_e with value = 1
else
add new field field_e with value = 0
这完全可以通过以下方式实现:
这完全可以通过以下方式实现:
谢谢@Val。不幸的是,它不起作用
POST my index/\u update\u by_query{“query”:{“match_all”:{},“script”:{“source”:“ctx._source.in_cr=(ctx._source.indexable_bool==true&(ctx.[csv_g-desktop']>0 | | ctx.(csv_g-mobile']>0))?1:0}。
Bug报告包含:“type”:“脚本异常”,“原因”:“编译错误”,“脚本堆栈”:[“…==true&&&(ctx.[源代码],“^----这里”。
哦,我知道为什么:在ctx.[源代码]。[源代码]csv\u g-mobile']
您需要删除第二个点,像这样ctx.[源代码]csv\u-mobile'.
谢谢:)抱歉,我发现StackOverflow的格式设置不起作用;(刚刚编辑了完整报告的主要问题您只替换了一些出现的内容,但不完全感谢@Val。不幸的是,它不起作用。POST my index/\u update\u by\u query{“query”:{“match\u all”:{},“script”:{“source”:“ctx.\u source.in\u cr=(ctx._source.indexable_bool==true&(ctx._source.[csv_g-desktop']>0 | ctx.[u csv_g-mobile']>0))?1:0“}。
错误报告包含:“类型”:“脚本异常”,“原因”:“编译错误”,“脚本堆栈”:[”..==true&(ctx.\u source^----这里“
哦,我知道为什么:在ctx中。_source.['csv\u g-mobile']
您需要删除第二个点,就像这样ctx。_source['csv\u g-mobile']
谢谢:)对不起,我发现StackOverflow的格式设置不起作用;(刚刚编辑了完整报告的主要问题您只替换了部分内容,而不是全部内容。)
POST index/_update_by_query
{
"query": {
"bool": {
"filter": [
{"exists": {"field": "field_a"}},
{"exists": {"field": "field_b"}},
{"exists": {"field": "field_c"}},
{"exists": {"field": "field_d"}}
]
}
},
"script": {
"source": "ctx._source.field_e = (ctx._source.field_a == 1 && (ctx._source.field_b > 0 || ctx._source.field_c > 0 || ctx._source.field_d > 0)) ? 1 : 0"
}
}