|
@@ -15,10 +15,18 @@ but are costly to build and are stored in-memory.
|
|
|
|
|
|
[[completion-suggester-mapping]]
|
|
|
===== Mapping
|
|
|
+include::../../mapping/types/completion.asciidoc[tag=completion-mapping]
|
|
|
|
|
|
-To use this feature, specify a special mapping for this field,
|
|
|
-which indexes the field values for fast completions.
|
|
|
|
|
|
+[[indexing]]
|
|
|
+===== Indexing
|
|
|
+
|
|
|
+You index suggestions like any other field. A suggestion is made of an
|
|
|
+`input` and an optional `weight` attribute. An `input` is the expected
|
|
|
+text to be matched by a suggestion query and the `weight` determines how
|
|
|
+the suggestions will be scored. Indexing a suggestion is as follows:
|
|
|
+
|
|
|
+////
|
|
|
[source,console]
|
|
|
--------------------------------------------------
|
|
|
PUT music
|
|
@@ -27,53 +35,13 @@ PUT music
|
|
|
"properties": {
|
|
|
"suggest": {
|
|
|
"type": "completion"
|
|
|
- },
|
|
|
- "title": {
|
|
|
- "type": "keyword"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
--------------------------------------------------
|
|
|
// TESTSETUP
|
|
|
-
|
|
|
-Mapping supports the following parameters:
|
|
|
-
|
|
|
-[horizontal]
|
|
|
-`analyzer`::
|
|
|
- The index analyzer to use, defaults to `simple`.
|
|
|
-
|
|
|
-`search_analyzer`::
|
|
|
- The search analyzer to use, defaults to value of `analyzer`.
|
|
|
-
|
|
|
-`preserve_separators`::
|
|
|
- Preserves the separators, defaults to `true`.
|
|
|
- If disabled, you could find a field starting with `Foo Fighters`, if you
|
|
|
- suggest for `foof`.
|
|
|
-
|
|
|
-`preserve_position_increments`::
|
|
|
- Enables position increments, defaults to `true`.
|
|
|
- If disabled and using stopwords analyzer, you could get a
|
|
|
- field starting with `The Beatles`, if you suggest for `b`. *Note*: You
|
|
|
- could also achieve this by indexing two inputs, `Beatles` and
|
|
|
- `The Beatles`, no need to change a simple analyzer, if you are able to
|
|
|
- enrich your data.
|
|
|
-
|
|
|
-`max_input_length`::
|
|
|
- Limits the length of a single input, defaults to `50` UTF-16 code points.
|
|
|
- This limit is only used at index time to reduce the total number of
|
|
|
- characters per input string in order to prevent massive inputs from
|
|
|
- bloating the underlying datastructure. Most use cases won't be influenced
|
|
|
- by the default value since prefix completions seldom grow beyond prefixes longer
|
|
|
- than a handful of characters.
|
|
|
-
|
|
|
-[[indexing]]
|
|
|
-===== Indexing
|
|
|
-
|
|
|
-You index suggestions like any other field. A suggestion is made of an
|
|
|
-`input` and an optional `weight` attribute. An `input` is the expected
|
|
|
-text to be matched by a suggestion query and the `weight` determines how
|
|
|
-the suggestions will be scored. Indexing a suggestion is as follows:
|
|
|
+////
|
|
|
|
|
|
[source,console]
|
|
|
--------------------------------------------------
|