elasticsearch中存储的全部文档
<强> 1. matchallquery() 强>
matchAllQuery()方法用来匹配全部文档
公开课QueryTest { 公共静态void main (String [] args) {//创建对象,设置集群名称和IP地址 ElasticsearchUtils es=new ElasticsearchUtils (“im_shan”, “localhost”); 字符串indexName="学校",//索引名称 字符串typeName="学生",//类型名称//搜索全部文档 QueryBuilder QueryBuilder=QueryBuilders.matchAllQuery (); SearchResponse SearchResponse=es。搜索者(indexName typeName, queryBuilder); SearchHits点击率=searchResponse.getHits (); SearchHit [] searchHits=hits.getHits (); int i=0; (SearchHit SearchHit: searchHits) { 字符串名称=(字符串)searchHit.getSource () . get("名称"); 字符串出生=(字符串)searchHit.getSource () . get("出生"); 字符串的兴趣=(字符串)searchHit.getSource () . get(“利益”); system . out。println (“- - - - - - - - - - - - -”+ (+ + i) +“- - - - - - - - - - - -”); System.out.println(名称); System.out.println(出生); System.out.println(利益); } } }
控制台将输出全部文档
输出: - - - - - - - - - - - - 1 - - - - - - - - - - - - 艾米 1995-11-10 唱歌跳舞 2 - - - - - - - - - - - - - - - - - - - - - - - - 角 1996-05-01 唱歌阅读 3 - - - - - - - - - - - - - - - - - - - - - - - - 杰克逊 1995-08-01 篮球音乐阅读 4 - - - - - - - - - - - - - - - - - - - - - - - - 杰克 1995-03-21 足球音乐 5 - - - - - - - - - - - - - - - - - - - - - - - - 汤姆 1995-09-11 阅读音乐
<强> 2。matchQuery(字符串名称、对象文本)强>
matchQuery (“filedname”、“价值”)匹配单个字段,匹配字段名为filedname,值为价值的文档
java)视图复制//单个匹配,搜索的名字为杰克的文档 QueryBuilder QueryBuilder=QueryBuilders。matchQuery(“名字”,“杰克”);>之前此时会输出一条记录,因为只有一个名称为杰克的文档
- - - - - - - - - - - - 1 - - - - - - - - - - - - 杰克 1995-03-21 足球音乐<强> 3。multiMatchQuery(对象文本字符串…字段名)强>
多个字段匹配某一个值
普通的副本(java)视图 QueryBuilder QueryBuilder=QueryBuilders.multiMatchQuery(“音乐”, “名称”、“利益”);//搜索的名字中或利益中包含有音乐的文档(必须与音乐一致)控制台输出如下
- - - - - - - - - - - - 1 - - - - - - - - - - - - 杰克 1995-03-21 足球音乐 2 - - - - - - - - - - - - - - - - - - - - - - - - 汤姆 1995-09-11 读音乐 3 - - - - - - - - - - - - - - - - - - - - - - - - 杰克逊 1995-08-01 篮球音乐阅读<强> 4. wildcardquery()模糊查询强>
模糊查询,& # 63;匹配单个字符,*匹配多个字符
WildcardQueryBuilder queryBuilder=QueryBuilders.wildcardQuery(“名字”, ”杰克* * ");//搜索名字中含有杰克文档(名称中只要包含杰克即可),控制台输出如下
- - - - - - - - - - - - 1 - - - - - - - - - - - - 杰克逊 1995-08-01 篮球音乐阅读 2 - - - - - - - - - - - - - - - - - - - - - - - - 杰克 1995-03-21 足球音乐<强> 5。使用BoolQueryBuilder进行复合查询强>
使用必须
java)视图复制//模糊查询 WildcardQueryBuilder queryBuilder1=QueryBuilders.wildcardQuery ( “名字”,”杰克* * ");//搜索名字中含有杰克的文档 WildcardQueryBuilder queryBuilder2=QueryBuilders.wildcardQuery ( “兴趣”、“* *”读);//搜索兴趣中含有读的文档 BoolQueryBuilder BoolQueryBuilder=QueryBuilders.boolQuery ();//名字中必须含有杰克,兴趣中必须含有阅读,相当于和 boolQueryBuilder.must (queryBuilder1); boolQueryBuilder.must (queryBuilder2);Elasticsearch QueryBuilder简单查询实现解析