From df3e4b78a37842cfb7fdadfc6b3a4a320d8e4f9c Mon Sep 17 00:00:00 2001 From: Adam Locke Date: Mon, 15 Jun 2020 14:49:33 -0400 Subject: [PATCH] [DOCS] Add documentation for near real-time search (#57560) * Adding documentation for near real-time search. * Adding link to NRT topic and clarifying some text. * Adding diagrams and incorporating changes from David T. --- docs/reference/docs/refresh.asciidoc | 14 +++++----- .../images/lucene-in-memory-buffer.png | Bin 0 -> 33733 bytes .../images/lucene-written-not-committed.png | Bin 0 -> 32261 bytes docs/reference/intro.asciidoc | 7 +++-- docs/reference/search/index.asciidoc | 6 +++-- docs/reference/search/near-real-time.asciidoc | 25 ++++++++++++++++++ 6 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 docs/reference/images/lucene-in-memory-buffer.png create mode 100644 docs/reference/images/lucene-written-not-committed.png create mode 100644 docs/reference/search/near-real-time.asciidoc diff --git a/docs/reference/docs/refresh.asciidoc b/docs/reference/docs/refresh.asciidoc index c5b19903dac02..479e6e8cf26e0 100644 --- a/docs/reference/docs/refresh.asciidoc +++ b/docs/reference/docs/refresh.asciidoc @@ -31,15 +31,15 @@ visible at some point after the request returns. [float] ==== Choosing which setting to use - -Unless you have a good reason to wait for the change to become visible always -use `refresh=false`, or, because that is the default, just leave the `refresh` -parameter out of the URL. That is the simplest and fastest choice. +// tag::refresh-default[] +Unless you have a good reason to wait for the change to become visible, always +use `refresh=false` (the default setting). The simplest and fastest choice is to omit the `refresh` parameter from the URL. If you absolutely must have the changes made by a request visible synchronously -with the request then you must pick between putting more load on -Elasticsearch (`true`) and waiting longer for the response (`wait_for`). Here -are a few points that should inform that decision: +with the request, you must choose between putting more load on +Elasticsearch (`true`) and waiting longer for the response (`wait_for`). +// end::refresh-default[] +Here are a few points that should inform that decision: * The more changes being made to the index the more work `wait_for` saves compared to `true`. In the case that the index is only changed once every diff --git a/docs/reference/images/lucene-in-memory-buffer.png b/docs/reference/images/lucene-in-memory-buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..376748861832db05dd23c23967c53b2c9ea6c9b9 GIT binary patch literal 33733 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

+UFM6y`(b#1U= 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 1 second. {es} uses a data structure called an inverted index that supports very fast full-text searches. An inverted index lists every unique word that appears in any document and identifies all of the documents each word occurs in. diff --git a/docs/reference/search/index.asciidoc b/docs/reference/search/index.asciidoc index 576186271870d..628765df31b7d 100644 --- a/docs/reference/search/index.asciidoc +++ b/docs/reference/search/index.asciidoc @@ -14,7 +14,7 @@ Depending on your data, you can use a query to get answers to questions like: * What pages on my website contain a specific word or phrase? * What processes on my server take longer than 500 milliseconds to respond? * What users on my network ran `regsvr32.exe` within the last week? -* How many of my products have a price greater than $20? +* How many of my products have a price greater than $20? A _search_ consists of one or more queries that are combined and sent to {es}. Documents that match a search's queries are returned in the _hits_, or @@ -29,11 +29,13 @@ a specific number of results. === In this section * <> +* <> * <> * <> -- include::run-a-search.asciidoc[] +include::{es-repo-dir}/search/near-real-time.asciidoc[] include::{es-repo-dir}/async-search.asciidoc[] -include::{es-repo-dir}/modules/cross-cluster-search.asciidoc[] \ No newline at end of file +include::{es-repo-dir}/modules/cross-cluster-search.asciidoc[] diff --git a/docs/reference/search/near-real-time.asciidoc b/docs/reference/search/near-real-time.asciidoc new file mode 100644 index 0000000000000..fe24a593cff29 --- /dev/null +++ b/docs/reference/search/near-real-time.asciidoc @@ -0,0 +1,25 @@ +[[near-real-time]] +== Near real-time search +The overview of <> indicates that when a document is stored in {es}, it is indexed and fully searchable in _near real-time_--within 1 second. What defines near real-time search? + +Lucene, the Java libraries on which {es} is based, introduced the concept of per-segment search. A _segment_ is similar to an inverted index, but the word _index_ in Lucene means "a collection of segments plus a commit point". After a commit, a new segment is added to the commit point and the buffer is cleared. + +Sitting between {es} and the disk is the filesystem cache. Documents in the in-memory indexing buffer (<>) are written to a new segment (<>). The new segment is written to the filesystem cache first (which is cheap) and only later is it flushed to disk (which is expensive). However, after a file is in the cache, it can be opened and read just like any other file. + +[[img-pre-refresh]] +.A Lucene index with new documents in the in-memory buffer +image::images/lucene-in-memory-buffer.png["A Lucene index with new documents in the in-memory buffer"] + +Lucene allows new segments to be written and opened, making the documents they contain visible to search ​without performing a full commit. This is a much lighter process than a commit to disk, and can be done frequently without degrading performance. + +[[img-post-refresh]] +.The buffer contents are written to a segment, which is searchable, but is not yet committed +image::images/lucene-written-not-committed.png["The buffer contents are written to a segment, which is searchable, but is not yet committed"] + +In {es}, this process of writing and opening a new segment is called a _refresh_. A refresh makes all operations performed on an index since the last refresh available for search. You can control refreshes through the following means: + +* Waiting for the refresh interval +* Setting the <> option +* Using the <> to explicitly complete a refresh (`POST _refresh`) + +By default, {es} periodically refreshes indices every second, but only on indices that have received one search request or more in the last 30 seconds. This is why we say that {es} has _near_ real-time search: document changes are not visible to search immediately, but will become visible within this timeframe.