# Elasticsearch not update

**URL:** <https://discuss.elastic.co/t/elasticsearch-not-update/226341>\
**Category:** Elasticsearch\
**Created:** [April 3, 2020, 5:57am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341 "2020-04-03T05:57:25Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 3, 2020, 5:57am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/1 "2020-04-03T05:57:25Z")

</div>

I met a strange thing, that is, I can use `_update_by_query` locally to successfully update, but not on the server. I considered the problem of multithreading and added a lock, but it still doesn't work. Can anyone have idea?

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 3, 2020, 6:35am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/2 "2020-04-03T06:35:59Z")

</div>

I'm using 7.6.1 and default configuration, same on server.

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 3, 2020, 7:36am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/3 "2020-04-03T07:36:33Z")

</div>

Now I use nodejs client and got error online.

```auto
    2020-04-03T07:32:08.717Z { ResponseError: Response Error
    at IncomingMessage.response.on (/home/maimemo/status-server/node_modules/@elastic/elasticsearch/lib/Transport.js:296:25)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1129:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'ResponseError',
  meta:
   { body:
      { took: 2,
        timed_out: false,
        total: 13,
        updated: 0,
        deleted: 0,
        batches: 1,
        version_conflicts: 13,
        noops: 0,
        retries: [Object],
        throttled_millis: 0,
        requests_per_second: -1,
        throttled_until_millis: 0,
        failures: [Array] },
     statusCode: 409,
     headers:
      { 'content-type': 'application/json; charset=UTF-8',
        'content-length': '4921' },
     warnings: null,
     meta:
      { context: null,
        request: [Object],
        name: 'elasticsearch-js',
        connection: [Object],
        attempts: 0,
        aborted: false } } }

```

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 6, 2020, 9:45am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/4 "2020-04-06T09:45:36Z")

</div>

After debugging, I found some problems, because our update request is relatively fast, it seems that elasticsearch will not update.

```auto
POST /messages/_update_by_query?conflicts=proceed
{
  "query": {
    "term":{
      "roomId":"5d944ee17e78d618bec1a39b"
    }
   },
   "script":{"source":"ctx._source.status = 2"}
}

```

Return value begin is

```auto
{
    "took": 69,
    "timed_out": false,
    "total": 388,
    "updated": 388,
    "deleted": 0,
    "batches": 1,
    "version_conflicts": 0,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1,
    "throttled_until_millis": 0,
    "failures": []
}

```

Change to

```auto
{
    "took": 22,
    "timed_out": false,
    "total": 388,
    "updated": 0,
    "deleted": 0,
    "batches": 1,
    "version_conflicts": 388,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1,
    "throttled_until_millis": 0,
    "failures": []
}

```

updated is 0 . Will Elasticsearch not update under frequent updates?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [April 6, 2020, 10:03am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/5 "2020-04-06T10:03:32Z")

</div>

Frequent updates to documents will cause a lot of small refreshes in newer versions which will lead to lower indexing performance as these are expensive and leads to a lot of merging. How often are you updating the same document?

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 6, 2020, 10:15am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/6 "2020-04-06T10:15:38Z")

</div>

The code is run in order and the two requests follow together. like this:

```auto
http.request()
http.request()
http.request()
http.request()

```

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [April 6, 2020, 10:16am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/7 "2020-04-06T10:16:59Z")

</div>

How frequently do you update a single document? Several times a second? A few times a minute? Do you always use update by query?

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 6, 2020, 10:21am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/8 "2020-04-06T10:21:42Z")

</div>

Yes, I always use update by query in a second.

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [April 6, 2020, 10:24am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/9 "2020-04-06T10:24:14Z")

</div>

I do not think Elasticsearch is optimized for frequent updates like this so would expect you to run into problems with this approach (although I have not tried it). It might be better to batch up updates in the application and send updates to Elasticsearch less frequently. If you describe your use case and what you are looking to achieve we may be able to suggest alternative approaches.

---

<div class="post-metadata">

**Author:** ![111306](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111306/32/65170_2.png) [@111306](https://discuss.elastic.co/u/111306)\
**Post date:** [April 6, 2020, 10:38am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/10 "2020-04-06T10:38:26Z")

</div>

Thanks, I will try to reduce some useless requests to see if I can solve the problem. If it doesn't work, I'll come to consult again.

---

<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:** [May 4, 2020, 10:38am UTC](https://discuss.elastic.co/t/elasticsearch-not-update/226341/11 "2020-05-04T10:38:30Z")

</div>

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