Elasticsearch QueryBuilder 간단 한 조회 해석

elasticsearch 에 저 장 된 모든 문서

1.matchAllQuery()
matchAllQuery()방법 은 모든 문서 와 일치 합 니 다.

public class QueryTest { 
  public static void main(String[] args) { 
    //    ,       IP   
    ElasticsearchUtils es = new ElasticsearchUtils("im_shan", 
        "localhost"); 
    String indexName = "school";//     
    String typeName = "student";//     
    //       
    QueryBuilder queryBuilder = QueryBuilders.matchAllQuery(); 
    SearchResponse searchResponse = es.searcher(indexName, typeName, 
      queryBuilder); 
    SearchHits hits = searchResponse.getHits(); 
    SearchHit[] searchHits = hits.getHits(); 
    int i = 0; 
    for (SearchHit searchHit : searchHits) { 
      String name = (String) searchHit.getSource().get("name"); 
      String birth = (String) searchHit.getSource().get("birth"); 
      String interest = (String) searchHit.getSource().get("interest"); 
      System.out.println("-------------" + (++i) + "------------"); 
      System.out.println(name); 
      System.out.println(birth); 
      System.out.println(interest); 
    } 
 
  } 
}
콘 솔 에서 모든 문 서 를 출력 합 니 다.

  : 
-------------1------------ 
amy 
1995-11-10 
singing dancing 
-------------2------------ 
angle 
1996-05-01 
singing reading 
-------------3------------ 
jackson 
1995-08-01 
basketball music reading 
-------------4------------ 
jack 
1995-03-21 
football music 
-------------5------------ 
tom 
1995-09-11 
reading music
2.matchQuery(String name,Object text)
matchQuery("filedname","value")는 단일 필드 와 일치 합 니 다.필드 이름 은 filedname 이 고 값 은 value 인 문서 입 니 다.

java] view plain copy 
//    ,  name jack    
QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "jack"); 
name 이 jack 인 문서 가 하나 밖 에 없 기 때문에 기록 을 출력 합 니 다.

-------------1------------ 
jack 
1995-03-21 
football music 
3.multiMatchQuery(Object text, String... fieldNames)
여러 필드 가 어떤 값 과 일치 합 니 다.

[java] view plain copy
QueryBuilder queryBuilder = QueryBuilders.multiMatchQuery("music", 
      "name", "interest");//  name  interest    music   (   music  )
콘 솔 출력 은 다음 과 같 습 니 다.

-------------1------------ 
jack 
1995-03-21 
football music 
-------------2------------ 
tom 
1995-09-11 
reading music 
-------------3------------ 
jackson 
1995-08-01 
basketball music reading
4.wildcardQuery()모호 조회
모호 조회,?단일 문자 일치,*여러 문자 일치

WildcardQueryBuilder queryBuilder = QueryBuilders.wildcardQuery("name", 
      "*jack*");//       jack  (name     jack  ) 
 콘 솔 출력 은 다음 과 같 습 니 다.

-------------1------------ 
jackson 
1995-08-01 
basketball music reading 
-------------2------------ 
jack 
1995-03-21 
football music
5.BoolQueryBuilder 를 사용 하여 복합 검색
사용 해 야 함

java] view plain copy
//     
WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery( 
      "name", "*jack*");//       jack    
WildcardQueryBuilder queryBuilder2 = QueryBuilders.wildcardQuery( 
      "interest", "*read*");//  interest   read    
 
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 
//name     jack,interest     read,   and 
boolQueryBuilder.must(queryBuilder1); 
boolQueryBuilder.must(queryBuilder2);
콘 솔 출력 은 다음 과 같 습 니 다(name 에 jack 이 있어 야 합 니 다.interest 에 read 가 있어 야 합 니 다.문서 만 일치 합 니 다):

-------------1------------ 
jackson 
1995-08-01 
basketball music reading 
사용 should

WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery( 
      "name", "*jack*");//       jack    
WildcardQueryBuilder queryBuilder2 = QueryBuilders.wildcardQuery( 
      "interest", "*read*");//  interest   read    
 
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 
//name   jack  interest  read,   or 
boolQueryBuilder.should(queryBuilder1); 
boolQueryBuilder.should(queryBuilder2);
콘 솔 출력(name 에 jack 이 포함 되 어 있 거나 interest 에 read 가 포함 되 어 있 는 것 은 모두 일치 합 니 다):

------------1------------ 
jackson 
1995-08-01 
basketball music reading 
-------------2------------ 
angle 
1996-05-01 
singing reading 
-------------3------------ 
jack 
1995-03-21 
football music 
-------------4------------ 
tom 
1995-09-11 
reading music
6.페이지 나 누 기
from 과 size 인 자 를 통 해 페이지 를 나 눕 니 다.From 는 조회 결과 의 시작 위 치 를 정의 하고 size 는 되 돌아 오 는 hits(하나의 hit 는 하나의 기록 에 대응)의 최대 수량 을 정의 합 니 다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기