Once the index (POST) call is made and returns, the document is guaranteed to be searchable from the index. When you query back, there are 2 ways to do it:
curl -XGET localhost:9200/myindex/order/2qLrAfPVQvCRMe7Ku8r0Tw
The above method is realtime, i.e., it will return the doc immediately after the prior POST
curl -XPOST localhost:9200/myindex/order/_search
The above method is near-realtime, i.e., it will return the doc approximately 1 second after the prior POST command. The 1 second "delay" is a called a refresh interval that can be configured per index. The default refresh interval for any index is 1 second, meaning when you run _search
, documents will be included in the results 1 second after the POST command returned successfully.
If you want to refresh immediately after a document is indexed, you may also do something like (it will be a little less efficient, but it will be realtime for a succeeding _search
):
curl -XPOST 'http://localhost:9200/myindex/order/2qLrAfPVQvCRMe7Ku8r0Tw?refresh=true'