Here is an example:
PUT /stem { "settings": { "analysis": { "filter": { "filter_stemmer": { "type": "stemmer", "language": "english" } }, "analyzer": { "tags_analyzer": { "type": "custom", "filter": [ "standard", "lowercase", "filter_stemmer" ], "tokenizer": "standard" } } } }, "mappings": { "test": { "properties": { "item_title": { "analyzer": "tags_analyzer", "type": "string" } } } } }
Indicate some sample documents:
POST /stem/test/1 { "item_title": "skateboards" } POST /stem/test/2 { "item_title": "skateboard" } POST /stem/test/3 { "item_title": "skate" }
Run the request:
GET /stem/test/_search { "query": { "multi_match": { "query": "skateboards", "fields": [ "item_title^3" ] } }, "fielddata_fields": [ "item_title" ] }
And look at the results:
"hits": [ { "_index": "stem", "_type": "test", "_id": "1", "_score": 1, "_source": { "item_title": "skateboards" }, "fields": { "item_title": [ "skateboard" ] } }, { "_index": "stem", "_type": "test", "_id": "2", "_score": 1, "_source": { "item_title": "skateboard" }, "fields": { "item_title": [ "skateboard" ] } } ]
I also added a fielddata_fields element so you can see how the contents of the field have been indexed. As you can see, in both cases the indexed member is a skateboard .
Andrei Stefan
source share