1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- [[index-prefixes]]
- === `index_prefixes`
- The `index_prefixes` parameter enables the indexing of term prefixes to speed
- up prefix searches. It accepts the following optional settings:
- [horizontal]
- `min_chars`::
- The minimum prefix length to index. Must be greater than 0, and defaults
- to 2. The value is inclusive.
- `max_chars`::
- The maximum prefix length to index. Must be less than 20, and defaults to 5.
- The value is inclusive.
- This example creates a text field using the default prefix length settings:
- [source,console]
- --------------------------------
- PUT my-index-000001
- {
- "mappings": {
- "properties": {
- "body_text": {
- "type": "text",
- "index_prefixes": { } <1>
- }
- }
- }
- }
- --------------------------------
- <1> An empty settings object will use the default `min_chars` and `max_chars`
- settings
- This example uses custom prefix length settings:
- [source,console]
- --------------------------------
- PUT my-index-000001
- {
- "mappings": {
- "properties": {
- "full_name": {
- "type": "text",
- "index_prefixes": {
- "min_chars" : 1,
- "max_chars" : 10
- }
- }
- }
- }
- }
- --------------------------------
- `index_prefixes` parameter instructs {ES} to create a subfield "._index_prefix". This
- field will be used to do fast prefix queries. When doing highlighting, add "._index_prefix"
- subfield to the `matched_fields` parameter to highlight the main field based on the
- found matches of the prefix field, like in the request below:
- [source,console]
- --------------------------------
- GET my-index-000001/_search
- {
- "query": {
- "prefix": {
- "full_name": {
- "value": "ki"
- }
- }
- },
- "highlight": {
- "fields": {
- "full_name": {
- "matched_fields": ["full_name._index_prefix"]
- }
- }
- }
- }
- --------------------------------
- // TEST[continued]
|