Relevancy scoring in Elasticsearch is made possible in part by text analyzers. Elasticsearch ships with many analyzers to choose from but has also made it very easy to mix and match tokenizers, token filters, and character filters to create your own analyzer to meet specific text analysis requirements. By using or creating the best analyzer for you, you can greatly improve search results in Elasticsearch. In this hands-on lab, you are given the opportunity to exercise the following:
* Create a custom analyzer based on the “standard” analyzer
* Create a new analyzed field mapping with the custom analyzer
* Reindex documents with the new analyzer to compare search behavior
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create the new index with the custom analyzer and text_entry field.
Use the Kibana console tool to execute the following:
PUT shakespeare_new { "mappings": { "properties": { "line_id": { "type": "integer" }, "line_number": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "play_name": { "type": "keyword" }, "speaker": { "type": "keyword" }, "speech_number": { "type": "integer" }, "text_entry": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 }, "case_insensitive": { "type": "text", "analyzer": "standard_custom" } } }, "type": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } } } }, "settings": { "analysis": { "analyzer": { "standard_custom": { "type": "custom", "tokenizer": "standard" } } }, "number_of_shards": 4, "number_of_replicas": 3 } }
- Reindex the data from shakespeare into shakespeare_new.
Use the Kibana console tool to execute the following:
POST _reindex { "source": { "index": "shakespeare" }, "dest": { "index": "shakespeare_new" } }