From 359b103f87ca6636967fec1951260dd545c8b7aa Mon Sep 17 00:00:00 2001 From: James Rodewig Date: Fri, 21 Jun 2019 11:53:01 -0400 Subject: [PATCH] [DOCS] Rewrite term-level queries overview (#43337) --- .../high-level/query-builders.asciidoc | 2 +- .../mapping/params/normalizer.asciidoc | 2 +- .../query-dsl/term-level-queries.asciidoc | 75 ++++++++----------- 3 files changed, 35 insertions(+), 44 deletions(-) diff --git a/docs/java-rest/high-level/query-builders.asciidoc b/docs/java-rest/high-level/query-builders.asciidoc index 32a3b06505b..eb401618f36 100644 --- a/docs/java-rest/high-level/query-builders.asciidoc +++ b/docs/java-rest/high-level/query-builders.asciidoc @@ -28,7 +28,7 @@ This page lists all the available search queries with their corresponding `Query | {ref}/query-dsl-simple-query-string-query.html[Simple Query String] | {query-ref}/SimpleQueryStringBuilder.html[SimpleQueryStringBuilder] | {query-ref}/QueryBuilders.html#simpleQueryStringQuery-java.lang.String-[QueryBuilders.simpleQueryStringQuery()] |====== -==== Term level queries +==== Term-level queries [options="header"] |====== | Search Query | QueryBuilder Class | Method in QueryBuilders diff --git a/docs/reference/mapping/params/normalizer.asciidoc b/docs/reference/mapping/params/normalizer.asciidoc index da0298abda2..0f8c09552f4 100644 --- a/docs/reference/mapping/params/normalizer.asciidoc +++ b/docs/reference/mapping/params/normalizer.asciidoc @@ -7,7 +7,7 @@ produces a single token. The `normalizer` is applied prior to indexing the keyword, as well as at search-time when the `keyword` field is searched via a query parser such as -the <> query or via a term level query +the <> query or via a term-level query such as the <> query. [source,js] diff --git a/docs/reference/query-dsl/term-level-queries.asciidoc b/docs/reference/query-dsl/term-level-queries.asciidoc index f4e185ba959..badfb85ac62 100644 --- a/docs/reference/query-dsl/term-level-queries.asciidoc +++ b/docs/reference/query-dsl/term-level-queries.asciidoc @@ -1,72 +1,63 @@ [[term-level-queries]] -== Term level queries +== Term-level queries -While the <> will analyze the query -string before executing, the _term-level queries_ operate on the exact terms -that are stored in the inverted index, and will normalize terms before executing -only for <> fields with <> property. +You can use **term-level queries** to find documents based on precise values in +structured data. Examples of structured data include date ranges, IP addresses, +prices, or product IDs. -These queries are usually used for structured data like numbers, dates, and -enums, rather than full text fields. Alternatively, they allow you to craft -low-level queries, foregoing the analysis process. +Unlike <>, term-level queries do not +analyze search terms. Instead, term-level queries match the exact terms stored +in a field. -The queries in this group are: + +[NOTE] +==== +Term-level queries still normalize search terms for `keyword` fields with the +`normalizer` property. For more details, see <>. +==== + +[float] +[[term-level-query-types]] +=== Types of term-level queries <>:: - - Find documents which contain the exact term specified in the field - specified. +Returns documents that contain an exact term in a provided field. <>:: - - Find documents which contain any of the exact terms specified in the field - specified. +Returns documents that contain one or more exact terms in a provided field. <>:: - - Find documents which match with one or more of the specified terms. The - number of terms that must match depend on the specified minimum should - match field or script. +Returns documents that contain a minimum number of exact terms in a provided +field. You can define the minimum number of matching terms using a field or +script. <>:: - - Find documents where the field specified contains values (dates, numbers, - or strings) in the range specified. +Returns documents that contain terms within a provided range. <>:: - - Find documents where the field specified contains any non-null value. +Returns documents that contain any indexed value for a field. <>:: - - Find documents where the field specified contains terms which begin with - the exact prefix specified. +Returns documents that contain a specific prefix in a provided field. <>:: - - Find documents where the field specified contains terms which match the - pattern specified, where the pattern supports single character wildcards - (`?`) and multi-character wildcards (`*`) +Returns documents that contain terms matching a wildcard pattern. <>:: - - Find documents where the field specified contains terms which match the - <> specified. +Returns documents that contain terms matching a +https://en.wikipedia.org/wiki/Regular_expression[regular expression]. <>:: - - Find documents where the field specified contains terms which are fuzzily - similar to the specified term. Fuzziness is measured as a - http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance[Levenshtein edit distance] - of 1 or 2. +Returns documents that contain terms similar to the search term. {es} measures +similarity, or fuzziness, using a +http://en.wikipedia.org/wiki/Levenshtein_distance[Levenshtein edit distance]. <>:: - Find documents of the specified type. +Returns documents of the specified type. <>:: - - Find documents with the specified type and IDs. +Returns documents based on their <>. include::term-query.asciidoc[]