准备工作:使用bulk导入es官方源数据
https://github.com/elastic/elasticsearch/blob/v6.8.18/docs/src/test/resources/accounts.json
一、全文查询-分词
1.match简单查询
match:模糊匹配,需要指定字段名,会对输入进行分词
大小写不敏感,会先把大写转成小写然后进行查询
查询格式:
eg: 查询address 字段中包含 street 的数据
eg:查询输入整体为”671 Bristol Street”,会按空格分成三个词 671 、Bristol 、Street
查询:
结果中包含671 、Bristol 、Street任意一个词都会被搜索出来
2.match_phrase短语查询
match_phase:会对输入做分词,但是要求结果中也包含有所的分词,而且要求结果中分词的顺序和查询输入一样,并且分词是连续在一起的。
eg:查询输入整体为”671 Bristol Street”,会按空格分成三个词 671 、Bristol 、Street,要求结果中也有三个词 671 、Bristol 、Street,并且顺序也是671 Bristol Street
查询:
结果
如果数据中有一个671 Bristol test Street,此时671、Bristol、Street三个词并不连续在一起,也是搜索不出来的。
3.multi_match多字段查询
4.query_string
query_string:和match类似,只是match是在指定的字段中搜索,query_string是在所有字段中搜索,default_field参数默认是*,所有字段,也可以指定只在某字段中搜索。
5.match_all
二、term 级别查询
1.term查询
2.range查询
3.exists查询
查询字段是否存在