elasticsearch6 query 全文查询与词项查询
query
全文查询
- QueryBuilders.matchQuery(“filed”,”value”).operator(Operator.AND); // 对查询的语句进行分词,分词后的词任意一个匹配doc都能查出来 
term query查询的是词项<分词后的>(eg:Java编程思想) Java编程 term query 不能查到 分词后变成(Java 编程 思想) matchQuery能查到 - QueryBuilders.matchPhraseQuery(“field”,”value”);
对value进行分词,可以自定义分词器,满足两个条件才能被搜到:- 分词后的所有词项都要匹配原字段
 - 顺序还需要一致
 
 - QueryBuilders.matchPhrasePrefixQuery(“field”,”value”);
与matchPhraseQuery类似,最后一个term支持前缀匹配
eg.matchPhraseQuery查 “hello word”matchPhrasePrefixQuery只需要查 **”hello w”**即可 - QueryBuilders.multiMatchQuery(“value”,”field1”,”field2”);  多字段支持查询,字段可以使用通配符
eg,{"中国","tit*","wor?"} - QueryBuilders.commonTermsQuery(“哇”,”hehe”);
通用查询,会自动分词为低频和高频项,先查低频,可以控制低频、高频出现概率eg.the wordthe就是高频 ,可以先查word - QueryBuilders.queryStringQuery(“”);
支持lucene查询语法 - QueryBuilders.simpleQueryStringQuery(“”);
支持lucene查询语法,具有非常完善的语法查询,解析过程中出现异常不会抛错 - QueryBuilders.matchAllQuery();
查所有和不写同样效果 
词项查询
- term query 词项检索
 - terms query 词项检索,可以多个词项,查到一个都能匹配结果
 - range query 查询范围内的
- gt 大于
 - gte 大于等于
 - lt 小于
 - lte 小于等于
 
 - exist query 查询会返回字段中至少有一个非空
空字符串也返回的doc - prefix query 查询字段中给定前缀的文档 
eg.{"title":"hel"} - wildcard query 查询字段通配符
eg."{"title":"hell?/ *ell*"} - regexp query 正则匹配查询
eg.{"title":"W[0-9].+"} - fuzzy query 模糊查询,最接近的查询,单词拼错一个字母的时候,
消耗资源多 - type query 指定类型的文档
 - ids query 查询具有指定id的文档
 
elasticsearch6 query 全文查询与词项查询
https://byte4sec.github.io/2018/11/13/elasticsearch6-query-全文查询与词项查询/
