synonyms 是指同义词,只要索引和字段中配置了同义词过滤器,match 查询是支持多词条的同义词扩展的。在应用过滤器后,解析器会对每个多次条同义词创建一个语句查询。
例如,同义词 USA, united states of America 就会构建出 (USA OR ("united states of America"))。看下面例子:
PUT /matchtest4 { "settings": { "index" : { "analysis" : { "analyzer" : { "synonym" : { "tokenizer" : "whitespace", "filter" : ["synonym"] } }, "filter" : { "synonym" : { "type" : "synonym", "synonyms" : [ "USA, united states of America" ] } } } } } } PUT /matchtest4/_mapping/synonyms_test { "properties": { "message": { "type": "text", "analyzer": "synonym" } } } PUT /matchtest4/synonyms_test/1 { "message": "united states of America people" } GET /matchtest4/_search { "query": { "match": { "message": { "query": "USA" } } } } 小结本文以代码实例的方式完整的讲解了 Match Query 的各种使用场景和参数意义。下篇会讲解 Match Phrase Query 敬请期待。