gpt4 book ai didi

elasticsearch - 如何添加到不同的字段值并将其存储在 Elasticsearch python中的另一个字段中( Elasticsearch 字段操作)

转载 作者:行者123 更新时间:2023-12-02 23:58:07 31 4
gpt4 key购买 nike

我写了这个 flex 搜索查询:

es.search(index=['ind1'],doc_type=['doc'])

我得到以下结果:
{'_shards': {'failed': 0, 'skipped': 0, 'successful': 5, 'total': 5},
'hits': {'hits': [{'_id': '1327',
'_index': 'ind1',
'_score': 1.0,
'_source': {'val1': 1,
'val2': None,
'value1': 1327,
'value2': 1531,
'new_values': {'nv1': 1,
'nv2': 0},
{'_id': '1349',
'_index': 'ind1',
'_score': 1.0,
'_source': {'val1': 2,
'val2': 3,
'value1': 1328,
'value2': 1539,
'new_values': {'nv1': 1,
'nv2': 3}},.......

我想要所有添加的val1,value1和nv1,并将其存储在另一个字段中。我们称其为total。我希望结果将是这样的:
{'_shards': {'failed': 0, 'skipped': 0, 'successful': 5, 'total': 5},
'hits': {'hits': [{'_id': '1327',
'_index': 'ind1',
'_score': 1.0,
'_source': {'val1': 1,
'val2': None,
'value1': 1327,
'value2': 1531,
'new_values': {'nv1': 1,
'nv2': 0},
'total1': 1329},
{'_id': '1349',
'_index': 'ind1',
'_score': 1.0,
'_source': {'val1': 2,
'val2': 3,
'value1': 1328,
'value2': 1539,
'new_values': {'nv1': 1,
'nv2': 3},
'total': 1331},.......

最佳答案

您可以做的是使用脚本字段来即时计算该值:

 es.search(index=['ind1'],doc_type=['doc'], body={
'_source': true,
'script_fields': {
'total': {
'script': {
'source': 'doc.val1 + doc.value1 + doc.new_values.nv1'
}
}
}
})

不过,最好的方法是在索引时预先计算该值,并将值存储在新的 total字段中。

关于elasticsearch - 如何添加到不同的字段值并将其存储在 Elasticsearch python中的另一个字段中( Elasticsearch 字段操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51548052/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com