1
當我在ES中索引文檔時,我試圖在刷新間隔內通過同一文檔並且搜索沒有返回結果。是否有實時GET支持,無論索引的「刷新率」如何,都可以獲取索引後的文檔。我嘗試將refresh_interval減少到500ms而不是1s,但是我的搜索查詢甚至在500毫秒之前就發生了,並且將它進一步降低並不是一個好主意。Elasticsearch實時GET支持
當我在ES中索引文檔時,我試圖在刷新間隔內通過同一文檔並且搜索沒有返回結果。是否有實時GET支持,無論索引的「刷新率」如何,都可以獲取索引後的文檔。我嘗試將refresh_interval減少到500ms而不是1s,但是我的搜索查詢甚至在500毫秒之前就發生了,並且將它進一步降低並不是一個好主意。Elasticsearch實時GET支持
索引文檔後,您可以立即獲取它,而不必等待刷新間隔。
所以,如果你的索引這樣
POST index/type/1
{ "name": "John Doe" }
一個新的文件,您可以立即得到它,而無需使用
GET index/type/1
如果你搜索的等待,但是,你會需要等待刷新間隔才能通過以檢索新文檔或調用刷新API。
爲了完整起見,值得指出的是,索引時也可以選擇refreshing the shards immediately,通過傳遞refresh=true
參數如下。但是請注意,這可能會影響性能,所以應該謹慎使用。
POST index/type/1?refresh=true
{ "name": "John Doe" }
另外值得一提的是,ES 5,你必須告訴ES以wait for a refresh的選項從創建返回之前:
POST index/type/1?refresh=wait_for
{ "name": "John Doe" }
在這種情況下,一旦POST請求返回,您可以保證新文檔在下一次搜索調用中可用。
完美!這工作。謝謝@Val –
對於搜索,您可以使用刷新API強制刷新:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html – Pandawan