Elasticsearch QueryBuilder 간단 한 조회 해석
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 는 하나의 기록 에 대응)의 최대 수량 을 정의 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.