elasticsearch
-
[Elasticsearch] 엘라스틱서치 bool query 사용DB/Elasticsearch 2021. 6. 29. 18:33
query_string 쿼리는 여러 조건을 조합하기에는 용이한 문법이지만 옵션이 한정되어 있다. 여러 쿼리를 조합하기 위해서는 상위에 bool 쿼리를 사용하고 그 안에 다른 쿼리들을 넣는 식으로 사용 가능하다. bool 쿼리는 4개의 인자를 가지고 있고, 그 인자 안에 다른 쿼리들을 배열로 넣는 방식으로 동작한다. must : 쿼리가 참인 도큐먼트들을 검색 must_not : 쿼리가 거짓인 도큐먼트들을 검색 should : 검색 결과 중 이 쿼리에 해당하는 도큐먼트의 점수를 높인다 filter : 쿼리가 참인 도큐먼트를 검색하지만 스코어를 계산하지 않는다. must 보다 검색 속도가 빠르고 캐싱이 가능. GET /_search { "query": { "bool": { "must": [ { }, … ], ..
-
[spring] 스프링 elasticsearch NativeSearchQuery 사용방법Spring/spring boot 및 기타 2021. 3. 16. 18:37
ElasticsearchRepository search 메소드 내부에 NativeSearchQuery 를 넘겨 사용 가능하다. 또는 ElasticsearchTemplate 및 elasticsearchOperations 을 사용할떄도 NativeSearchQuery 를 사용할 수 있다. 쿼리 클래스의 종류로는 CriteriaQuery, StringQuery, NativeSearchQuery NativeSearchQuery 란 복잡한 쿼리를 사용하려 할때 Criteria 로는 표현이 불가할때 사용한다. CriteriaQuery 와 StringQuery 의 단점을 보완한 클래스이다. ElasticsearchRepository 를 상속받아 사용하는 방식 @Repository public interface Per..
-
[spring] 스프링 elasticsearch ElasticsearchRepository underscore 오류 해결방법Spring/spring boot 및 기타 2021. 3. 16. 11:50
엘라스틱 을 조회할떄 네이밍에 언더바(언더스코어)가 들어간 경우 일반적인 방법으로 ElasticsearchRepository 라이브러리로 조회가 가능하지 않다. EX) name_field : '데이터' 이거 오류 해결 방법 좀 알고 싶었으나 지지고 볶아도 오류해결 방법이 없다. 애초에 네이밍을 카멜로 했거나 그게 안되면 ElasticsearchOperations 을 사용해서 엘라스틱 조회를 해야한다. 간편하게 사용하기에는 아무래도 ElasticsearchRepository 가 jpa 랑 같아 사용하기 편한데, 복잡한 쿼리에는 불편한 점이 따르니 어쩔 수 없다. 굳이 언더바를 검색하려면 방법은 있다. @Repository public interface SampleRepository extends Elast..