내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
8.14에서 Elastic은 Elasticsearch에 "검색기"라는 새로운 검색 기능을 도입했습니다. 단순성과 효율성, 그리고 검색 작업을 어떻게 향상시킬 수 있는지 알아보려면 계속 읽어보세요.
리트리버는 Elasticsearch의 검색 API에 추가된 새로운 추상화 계층입니다. 단일 _search API 호출로 다단계 검색 파이프라인을 구성하는 기능을 제공합니다. 이 아키텍처는 복잡한 검색 쿼리에 대한 여러 Elasticsearch API 호출의 필요성을 제거하여 애플리케이션의 검색 논리를 단순화합니다. 또한 여러 쿼리의 결과를 결합해야 하는 클라이언트 측 논리의 필요성도 줄어듭니다.
초기 릴리스에는 세 가지 유형의 리트리버가 포함되어 있습니다. 각 검색기는 특정 목적을 위해 설계되었으며 결합되면 복잡한 검색을 수행할 수 있습니다.
사용 가능한 유형은 다음과 같습니다.
기존 쿼리의 경우 쿼리는 전체 검색 API 호출의 일부입니다. 리트리버는 개별적으로 사용하거나 쉽게 결합할 수 있는 독립적인 개체로 설계되었다는 점에서 다릅니다. 이 모듈식 접근 방식은 검색 전략을 설계할 때 더 큰 유연성을 제공합니다.
리트리버는 순서와 논리를 명확히 하여 검색 작업을 정의하는 계층 구조인 "리트리버 트리"의 일부로 설계되었습니다. 이 구조를 사용하면 복잡한 검색을 더 쉽게 관리하고 개발자가 더 쉽게 이해할 수 있으며 향후에 새로운 기능을 쉽게 추가할 수 있습니다.
검색기는 구성성을 지원하므로 파이프라인을 구축하고 다양한 검색 전략을 통합할 수 있습니다. 이를 통해 다양한 검색 조합을 쉽게 테스트할 수 있습니다. 또한 문서의 점수를 매기고 필터링하는 방법을 더 효과적으로 제어할 수 있습니다. 예를 들어 최소 점수 임계값을 지정하고, 점수에 영향을 주지 않고 복잡한 필터를 적용하고, 성능 최적화를 위해 quit_after와 같은 매개변수를 사용할 수 있습니다.
레거시 쿼리 요소와의 이전 버전과의 호환성을 유지하여 해당 요소를 적절한 검색기로 자동 변환합니다.
리트리버를 사용하는 몇 가지 예를 살펴보겠습니다. 우리는 IMDB 샘플 데이터 세트를 사용합니다.
포함된 것을 실행할 수 있습니다. 주피터 노트북, IMDB 데이터를 서버리스 검색 프로젝트로 가져오고 다음 예제를 직접 실행해 보세요!
상위 수준 설정은 다음과 같습니다.
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless"
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "rrf": {
- "retrievers": [
- {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless slackers"
- }
- }
- }
- },
- {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- }
- ],
- "rank_window_size": 5,
- "rank_constant": 1
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
검색기에는 사용자가 알아야 할 특정 제한 사항이 있습니다. 예를 들어, 복합 검색기를 사용하면 요소만 쿼리할 수 있습니다. 이를 통해 관심사를 보다 명확하게 분리하고 과도한 중첩이나 독립적 구성으로 인한 복잡성을 방지할 수 있습니다. 또한 하위 리트리버는 복합 리트리버를 리트리버 트리의 일부로 제한하는 요소를 사용해서는 안 됩니다.
이러한 제한은 복잡한 검색 전략을 사용하는 경우에도 성능과 구성성을 향상시킵니다.
검색기는 처음에 기술 미리보기로 출시되었으므로 API가 변경될 수 있습니다.
검색자는 Elasticsearch 검색 기능과 사용자 친화성에 있어서 중요한 진전을 나타냅니다. 각 검색기는 논리를 적용하고 결과를 체인의 다음 항목에 전달하는 파이프라인 방식으로 연결될 수 있습니다. 검색자는 보다 체계적이고 유연하며 효율적인 검색 작업을 통해 검색 경험을 크게 향상시킬 수 있습니다.
다음 리소스는 검색기에 대한 자세한 내용을 제공합니다.
위의 코드를 직접 시도해 보세요!당신은 실행할 수 있습니다주피터 노트북과 함께 제공, IMDB 데이터를 Elastic Serverless Search 프로젝트로 가져오세요!
직접 시도해 볼 준비가 되셨나요?시작무료 시험판。
Elastic 인증을 받고 싶으신가요?다음에 알아보세요Elasticsearch 엔지니어 교육언제 시작해야 할까요?
원래의:Elasticsearch 검색기 - Elasticsearch에서 검색 검색기를 사용하는 방법 — Elastic Search Labs