# Как в ElasticsearchOperations в UpdateQuery в скрипте достать params листом а не стрингой?

**URL:** <https://discuss.elastic.co/t/elasticsearchoperations-updatequery-params/350653>\
**Category:** Elasticsearch\
**Tags:** painless\
**Created:** [January 9, 2024, 12:53pm UTC](https://discuss.elastic.co/t/elasticsearchoperations-updatequery-params/350653 "2024-01-09T12:53:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marina\_S](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@Marina\_S](https://discuss.elastic.co/u/Marina_S)\
**Post date:** [January 9, 2024, 12:53pm UTC](https://discuss.elastic.co/t/elasticsearchoperations-updatequery-params/350653/1 "2024-01-09T12:53:54Z")

</div>

Я использую ElasticsearchOperations  
directories это лист объектов List Directory

String scriptText = "if (ctx.\_source.businessPartnerParams != null) { " +  
"ctx.\_source.businessPartnerParams.bpName = 'test 3 ' " +  
"}";  
HashMap\<String, Object\> params = new HashMap\<\>();

params.put("directories", directories);  
UpdateQuery updateQuery = UpdateQuery.builder(Query.findAll())  
.withScriptType(INLINE)  
.withLang("painless")  
.withScript(scriptText)  
.withParams(params)  
.build();  
ByQueryResponse byQueryResponse = operations.updateByQuery(updateQuery,  
IndexCoordinates.of(RELEVANT\_INDEX\_NAME));

В кибане этот запрос выглядит так:  
POST /partners-rd-partners-partners-1/\_update\_by\_query?refresh=false { "query": { "wrapper": { "query": "eyJtYXRjaF9hbGwiOnt9fQ==" } }, "script": { "params": { "directories": "[Directory(id=DirectedTypeBUR001, code=BUR001, description=Имеет контактное лицо, type=DirectedType, value=null), Directory(id=DirectedTypeBUR002, code=BUR002, description=Имеет контактного партнера, type=DirectedType, value=null), Directory(id=DirectedTypeBUR003, code=BUR003, description=Имеет члена жилищного объединения, type=DirectedType, value=null)]" }, "lang": "painless", "source": """def message = params.directories.toArray(); Debug.explain(message); if (ctx.\_source.businessPartnerParams != null) { ctx.\_source.businessPartnerParams.bpName = 'test 3 ' }""" } }

Я не могу нормально достать params, т.к. Java складывает лист как string. Как положить или достать params как лист объектов а не строкой?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 6, 2024, 12:54pm UTC](https://discuss.elastic.co/t/elasticsearchoperations-updatequery-params/350653/2 "2024-02-06T12:54:10Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
