Typesense 검색 가이드

Typesense 검색 가이드

검색은 Typesense의 핵심 기능이에요. 단순 키워드 검색부터 오타 허용 검색, 필터, 패싯까지 REST API 하나로 처리할 수 있어요. 검색 요청의 응답은 hits 배열에 매칭된 도큐먼트들을 담아서 돌아와요.

출처: https://typesense.org/docs/0.25.1/guides/search.html

기본 검색

가장 단순한 검색은 q(검색어)와 query_by(검색할 필드)만 지정하는 거예요.

curl 'http://localhost:8108/collections/companies/documents/search?q=starbucks&query_by=company_name'

여기서 q가 검색어이고, query_by는 컬렉션 스키마에 정의한 필드 중 어느 필드를 검색 대상으로 쓸지 정해요. 여러 필드를 쉼표로 구분해 지정할 수도 있어요.

오타 허용 검색

Typesense는 오타 허용(typ-tolerant) 검색이 기본 동작이에요. 사용자가 "starbucs"처럼 오타를 내도 "starbucks"를 찾아줘요. 이는 내부적으로 편집 거리(edit distance) 기반 제어로 동작하고, typo_tokens_threshold 같은 파라미터로 허용 범위를 조절할 수 있어요.

필터링과 패싯

검색 결과에서 특정 조건만 걸러내고 싶을 때 filter_by를 써요.

curl 'http://localhost:8108/collections/companies/documents/search?q=coffee&query_by=company_name&filter_by=num_employees:>100'

패싯(그룹별 집계)을 쓰려면 필드가 컬렉션에 facet: true로 정의돼 있어야 해요. 그러면 facet_by 파라미터로 해당 필드의 값별 개수를 함께 받을 수 있어요.

curl 'http://localhost:8108/collections/companies/documents/search?q=coffee&query_by=company_name&facet_by=country'

검색 파라미터

검색 API는 여러 파라미터로 동작을 제어해요. 대표적인 것들로는 sort_by(정렬), pageper_page(페이지네이션), "*"를 쓰는 query_by(모든 필드 검색)가 있어요. 예를 들어 직원 수 내림차순으로 정렬하고 싶다면 이렇게 해요.

curl 'http://localhost:8108/collections/companies/documents/search?q=coffee&query_by=company_name&sort_by=num_employees:desc'

더 알아보기