gpt4 book ai didi

elasticsearch - 在查询Elasticsearch v6.0.1时使用无痛脚本将新字段添加到_source对象中

转载 作者:行者123 更新时间:2023-12-02 22:27:42 24 4
gpt4 key购买 nike

我有一个具有一个属性(id:整数)的字段映射的索引。
当我查询该索引时,我能够得到正确的响应。现在,我想使用无痛脚本在查询时向_source对象添加一个额外的字段。
elasticsearch版本是6.0.1。

我已经尝试将脚本添加为查询块中的字段。但这会引发错误:

{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[term] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 7,
"col": 7
}
],
"type": "parsing_exception",
"reason": "[term] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 7,
"col": 7
},
"status": 400
}
GET 20190719_candidate/candidate/_search
{
"min_score": 0.001,
"query": {
"term": {
"id": 1234
},
"script": {
"script": {
"inline": "doc['field_1'] = 'field_1_value'"
}
}
},
"from": 0,
"size": 20
}

_source对象的预期结果是:
{
"id": "1234567",
"field_1": "field_1_value"
}

最佳答案

您缺少以下结构:

GET 20190719_candidate/candidate/_search
{
"min_score": 0.001,
"query": {
"term": {
"id": 1234
},
"script_fields": {
"test1":{
"script": {
"lang": "painless",
"source": "'field_1_value'"
}
}
}
},
"from": 0,
"size": 20
}

看一下这个例子:
GET /_search
{
"query" : {
"match_all": {}
},
"script_fields" : {
"test1" : {
"script" : {
"lang": "painless",
"source": "doc['price'].value * 2"
}
},
"test2" : {
"script" : {
"lang": "painless",
"source": "doc['price'].value * params.factor",
"params" : {
"factor" : 2.0
}
}
}
}
}

来源: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-script-fields

关于elasticsearch - 在查询Elasticsearch v6.0.1时使用无痛脚本将新字段添加到_source对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305733/

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