본문 바로가기

Search4

Elasticsearch hybrid search with RRF(Reciprocal rank fusion) 개요이전 게시글에서는(https://blog.igooo.org/157) Elasticsearch에 semantic_text 타입을 사용한 시맨틱 검색을 사용하는 방법에 대하여 알아봤다. 이번 게시글에서는 sematic search와 full-text 검색을 결합한 하이브리드 검색을(hybrid search) 사용하는 방법에 대하여 알아본다.하이브리드 검색에서 semantic-search은 텍스트의 의미에 따라 결과를 검색하고, full-text search는 정확한 단어 일치에 초점을 맞춰서 검색한다. 하이브리드 검색은 sematic, full-text 두 가지 방법을 결함함으로써 둘 중 하나의 검색 결과가 충분하지 않을 경우 더욱 관련성 있는 결과를 제공할 수 있다.  Getting StartedReq.. 2024. 12. 3.
Elasticsearch 시맨틱 검색(semantic search) 개요Elasticsearch의 semantic_text를 사용하여 시맨틱 검색을 사용하는 방법과, Full-text saerch 검색과는 어떤 차이점이 있는지 같이 알아본다. Full-text searchFull-text 검색은 사용자가 입력한 문장을 언어에 맞는 형태소 분석기를 사용하여 각각의 품사로 분리하고, 분리된 단어들은 BM23(https://en.wikipedia.org/wiki/Okapi_BM25) 알고리즘에 따라 문서 안에 키워드의 발생 빈도, 문서의 길이 등을 값을 기준으로 평가하여 score가 놓은 문서를 찾는 방식이다.단점은 형태소 분석기로 분리된 단어에 대해서만 검색이 가능하다. (ex 맛집으로 검색하면 식당이 들어간 문서는 검색되지 않는다.동의어를 사용하면 처리가 가능하지만 사용자.. 2024. 11. 27.
Spring AI를 사용한 AI 어시스턴트 구현 RAG - Part 2 (with OpenAI) 개요Spring AI에 첫 번째 부분에서 Spring AI를 LLM과(대규모 언어 모델) 통합하는 기본 사항에 대하여 구현했다. 사용자 지정 ChatClient를 생성하여 애플리케이션에서 제공하는 함수를 호출하에 사용자 프롬프트에 응답하는 기능에 대하여 구현했다. Part 2에서는 일반적인 함수 호출 방식의 제약에 맞지 않은 대규모 데이터 세트를 처리할 수 있는 기술인 RAG를(Retrieval-Augmented Generation) 사용하여 검색 기능을 살펴보고, RAG를 사용하여 어떻게 AI를 애플리케이션과 통합할 수 있는지 알아본다. RAG(Retrieval-Augmented Generation)  RAG(Retrieval-Augmented Generation)는 대규모 언어 모델의 출력을 최적화하.. 2024. 10. 3.
Elasticsearch - Dense vector field type 개요유사도 검색은(similarity search) 사용자가 입렵한 데이터에(문서, 이미지, ...) 대하여 가장 유사한 순서로 문서를 조회하여 정렬하는 검색 방식이다.kNN검색은 Elasticsearch 8.x 부터 제공한다.https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html k-nearest neighbor (kNN) search | Elasticsearch Guide [8.13] | ElasticThe filter is applied during the approximate kNN search to ensure that k matching documents are returned. This contrasts .. 2024. 6. 3.