浏览代码

[DOCS] Reformat match query (#45152)

James Rodewig 6 年之前
父节点
当前提交
95655162f3
共有 1 个文件被更改,包括 145 次插入10 次删除
  1. 145 10
      docs/reference/query-dsl/match-query.asciidoc

+ 145 - 10
docs/reference/query-dsl/match-query.asciidoc

@@ -4,9 +4,15 @@
 <titleabbrev>Match</titleabbrev>
 ++++
 
+Returns documents that match a provided text, number, date or boolean value. The
+provided text is analyzed before matching.
 
-`match` queries accept text/numerics/dates, analyzes
-them, and constructs a query. For example:
+The `match` query is the standard query for performing a full-text search,
+including options for fuzzy matching.
+
+
+[[match-query-ex-request]]
+==== Example request
 
 [source,js]
 --------------------------------------------------
@@ -14,29 +20,158 @@ GET /_search
 {
     "query": {
         "match" : {
-            "message" : "this is a test"
+            "message" : {
+                "query" : "this is a test"
+            }
         }
     }
 }
 --------------------------------------------------
 // CONSOLE
 
-Note, `message` is the name of a field, you can substitute the name of
-any field instead.
+
+[[match-top-level-params]]
+==== Top-level parameters for `match`
+
+`<field>`::
+(Required, object) Field you wish to search.
+
+
+[[match-field-params]]
+==== Parameters for `<field>`
+`query`::
++
+--
+(Required) Text, number, boolean value or date you wish to find in the provided
+`<field>`.
+
+The `match` query <<analysis,analyzes>> any provided text before performing a
+search. This means the `match` query can search <<text,`text`>> fields for
+analyzed tokens rather than an exact term.
+--
+
+`analyzer`::
+(Optional, string) <<analysis,Analyzer>> used to convert the text in the `query`
+value into tokens. Defaults to the <<specify-index-time-analyzer,index-time
+analyzer>> mapped for the `<field>`. If no analyzer is mapped, the index's
+default analyzer is used.
+
+`auto_generate_synonyms_phrase_query`::
++
+--
+(Optional, boolean) If `true`, <<query-dsl-match-query-phrase,match phrase>>
+queries are automatically created for multi-term synonyms. Defaults to `true`.
+
+See <<query-dsl-match-query-synonyms,Use synonyms with match query>> for an
+example.
+--
+
+`fuzziness`::
+(Optional, string) Maximum edit distance allowed for matching. See <<fuzziness>>
+for valid values and more information. See <<query-dsl-match-query-fuzziness>>
+for an example.
+
+`max_expansions`::
+(Optional, integer) Maximum number of terms to which the query will
+expand. Defaults to `50`.
+
+`prefix_length`::
+(Optional, integer) Number of beginning characters left unchanged for fuzzy
+matching. Defaults to `0`.
+
+`transpositions`::
+(Optional, boolean) If `true`, edits for fuzzy matching include
+transpositions of two adjacent characters (ab → ba). Defaults to `true`.
+
+`fuzzy_rewrite`::
++
+--
+(Optional, string) Method used to rewrite the query. See the
+<<query-dsl-multi-term-rewrite, `rewrite` parameter>> for valid values and more
+information.
+
+If the `fuzziness` parameter is not `0`, the `match` query uses a `rewrite`
+method of `top_terms_blended_freqs_${max_expansions}` by default.
+--
+
+`lenient`::
+(Optional, boolean) If `true`, format-based errors, such as providing a text
+`query` value for a <<number,numeric>> field, are ignored. Defaults to `false`.
+
+`operator`::
++
+--
+(Optional, string) Boolean logic used to interpret text in the `query` value.
+Valid values are:
+
+`OR` (Default)::
+For example, a `query` value of `capital of Hungary` is interpreted as `capital
+OR of OR Hungary`.
+
+`AND`::
+For example, a `query` value of `capital of Hungary` is interpreted as `capital
+AND of AND Hungary`.
+--
+
+`minimum_should_match`::
++
+--
+(Optional, string) Minimum number of clauses that must match for a document to
+be returned. See the <<query-dsl-minimum-should-match, `minimum_should_match`
+parameter>> for valid values and more information.
+--
+
+`zero_terms_query`::
++
+--
+(Optional, string) Indicates whether no documents are returned if the `analyzer`
+removes all tokens, such as when using a `stop` filter. Valid values are:
+
+`none` (Default)::
+No documents are returned if the `analyzer` removes all tokens.
+
+`all`::
+Returns all documents, similar to a <<query-dsl-match-all-query,`match_all`>>
+query.
+
+See <<query-dsl-match-query-zero>> for an example.
+--
+
+
+[[match-query-notes]]
+==== Notes
+
+[[query-dsl-match-query-short-ex]]
+===== Short request example
+
+You can simplify the match query syntax by combining the `<field>` and `query`
+parameters. For example:
+
+[source,js]
+----
+GET /_search
+{
+    "query": {
+        "match" : {
+            "message" : "this is a test"
+        }
+    }
+}
+----
+// CONSOLE
 
 [[query-dsl-match-query-boolean]]
-==== match
+===== How the match query works
 
 The `match` query is of type `boolean`. It means that the text
 provided is analyzed and the analysis process constructs a boolean query
-from the provided text. The `operator` flag can be set to `or` or `and`
+from the provided text. The `operator` parameter can be set to `or` or `and`
 to control the boolean clauses (defaults to `or`). The minimum number of
 optional `should` clauses to match can be set using the
 <<query-dsl-minimum-should-match,`minimum_should_match`>>
 parameter.
 
-Here is an example when providing additional parameters (note the slight
-change in structure, `message` is the field name):
+Here is an example with the `operator` parameter:
 
 [source,js]
 --------------------------------------------------
@@ -63,7 +198,7 @@ data-type mismatches,  such as trying to query a numeric field with a text
 query string. Defaults to `false`.
 
 [[query-dsl-match-query-fuzziness]]
-===== Fuzziness
+===== Fuzziness in the match query
 
 `fuzziness` allows _fuzzy matching_ based on the type of field being queried.
 See <<fuzziness>> for allowed settings.