# What is the correct way to insert document in elastic search using multiple documents using multiple threads in c#

**URL:** <https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711>\
**Category:** Elasticsearch\
**Created:** [September 25, 2023, 7:39am UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711 "2023-09-25T07:39:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mreddy9](https://avatars.discourse-cdn.com/v4/letter/m/ecd19e/32.png) [@mreddy9](https://discuss.elastic.co/u/mreddy9)\
**Post date:** [September 25, 2023, 7:39am UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/1 "2023-09-25T07:39:25Z")

</div>

Hi All,

I'm using multiple threads in c# to isert documents in c# as below but some times document is not inserted into elstic search search.

var indexResponse = elasticClient.IndexDocument(testReport);

But if I try the following code which iterates through all documents in mongo db and then inserts into elastic all documents are getting inserted successfully. Please help to resolve this issue

await testcoll.Find(new BsonDocument()).ForEachAsync(async document =\>  
{  
var indexResponse = elasticClient.IndexDocument(testReport);  
})

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [September 25, 2023, 9:27am UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/2 "2023-09-25T09:27:49Z")

</div>

Welcome!

> [@mreddy9](#):
>
> but some times document is not inserted into elstic search search.

How do you know that it's not inserted?  
Are you running a GET by ID request? A Search? Are you getting an error?

A common mistake is to forget to run a refresh call after the document has been inserted. It's happening most of the time in integration tests.

For example, have a look at this (Java) code:

> <https://github.com/dadoonet/elasticsearch-java-client-demo/blob/cd89c87ac80b1583f59085bc1d849706c79b2a2b/src/test/java/fr/pilato/test/elasticsearch/hlclient/EsClientIT.java#L217-L225>

Note the refresh part:

```
client.indices().refresh(rr -> rr.index("test"));

```

---

<div class="post-metadata">

**Author:** ![mreddy9](https://avatars.discourse-cdn.com/v4/letter/m/ecd19e/32.png) [@mreddy9](https://discuss.elastic.co/u/mreddy9)\
**Post date:** [September 28, 2023, 12:22pm UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/3 "2023-09-28T12:22:22Z")

</div>

Will it not delay the indexing process if we refresh the index for thousands of documents

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [September 28, 2023, 1:24pm UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/4 "2023-09-28T13:24:57Z")

</div>

It will add some delay, yes. But you did not answer any of my questions...

- How do you know that it's not inserted?
- Are you running a GET by ID request?
- A Search?
- Are you getting an error?

---

<div class="post-metadata">

**Author:** ![mreddy9](https://avatars.discourse-cdn.com/v4/letter/m/ecd19e/32.png) [@mreddy9](https://discuss.elastic.co/u/mreddy9)\
**Post date:** [September 28, 2023, 4:56pm UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/5 "2023-09-28T16:56:56Z")

</div>

Yes to know if it is not inserted I'm getting by ID.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [September 28, 2023, 9:41pm UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/6 "2023-09-28T21:41:14Z")

</div>

GET by id does not need a refresh. See [Get API | Elasticsearch Guide [8.10] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html#realtime)

---

<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:** [October 26, 2023, 9:41pm UTC](https://discuss.elastic.co/t/what-is-the-correct-way-to-insert-document-in-elastic-search-using-multiple-documents-using-multiple-threads-in-c/343711/7 "2023-10-26T21:41:43Z")

</div>

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