1.简介
本文详细介绍match
的用法,各个参数的作用。其实就是阅读官方文档中match
的用法进行总结。请阅读的小伙伴们多多指出不足。
2.match详解
match这种搜索是ES独有的,SQL没有。这种搜索可以对 text、boolean、date、number(这些都是es的字段类型),进行搜索。
使用match搜索时,会将你的搜索文本先进行分词,之后再去查询。
是全文索引的标准方式。
2.1完整Json格式
{
"query": {
"match" :{
"mainTitle":{
*"query": "想要搜索的文本、数字、boolean、日期",
*"analyzer": "指定分词器,对查询query字段值进行切分。未指定时使用字段生成索引时使用的分词器,如果没有则使用索引的默认分词器",
"auto_generate_synonyms_phrase_query":"",
*"fuzziness": "整数:指定最大的最小编辑距离",
"max_expansions": "整数:词项的扩展",
"prefix_length": "整数:分词后的词项匹配前缀一致长度",
"fuzzy_transpositions":"true/false:默认true,是否支持字符的位置交换",
"fuzzy_rewrite":"",
*"lenient":"true/false: 查询的字段是个 boolean,而query是字符串是否报错",
*"operator":"and/or:默认是or,就是说词项是否都要匹配",
"minimum_should_match":"最少匹配的词项数,这里有个表达式规则详情看官方文档",
*"zero_terms_query":"none/all:当分词后为0词项用于查询,是返回所有还是空"
}
}
}
}