1.简介

本文详细介绍match的用法,各个参数的作用。其实就是阅读官方文档中match的用法进行总结。请阅读的小伙伴们多多指出不足。

2.match详解

match这种搜索是ES独有的,SQL没有。这种搜索可以对 text、boolean、date、number(这些都是es的字段类型),进行搜索。
使用match搜索时,会将你的搜索文本先进行分词,之后再去查询。
是全文索引的标准方式。

2.1完整Json格式

  1. {
  2. "query": {
  3. "match" :{
  4. "mainTitle":{
  5. *"query": "想要搜索的文本、数字、boolean、日期",
  6. *"analyzer": "指定分词器,对查询query字段值进行切分。未指定时使用字段生成索引时使用的分词器,如果没有则使用索引的默认分词器",
  7. "auto_generate_synonyms_phrase_query":"",
  8. *"fuzziness": "整数:指定最大的最小编辑距离",
  9. "max_expansions": "整数:词项的扩展",
  10. "prefix_length": "整数:分词后的词项匹配前缀一致长度",
  11. "fuzzy_transpositions":"true/false:默认true,是否支持字符的位置交换",
  12. "fuzzy_rewrite":"",
  13. *"lenient":"true/false: 查询的字段是个 boolean,而query是字符串是否报错",
  14. *"operator":"and/or:默认是or,就是说词项是否都要匹配",
  15. "minimum_should_match":"最少匹配的词项数,这里有个表达式规则详情看官方文档",
  16. *"zero_terms_query":"none/all:当分词后为0词项用于查询,是返回所有还是空"
  17. }
  18. }
  19. }
  20. }