PHP Elasticsearch: 동적 매핑을 사용하여 유연한 검색 기능을 구현하는 방법은 무엇입니까?
인용문:
최신 애플리케이션을 개발할 때 검색 기능은 필수적인 부분입니다. Elasticsearch는 풍부한 기능과 유연한 데이터 모델링을 제공하는 강력한 검색 및 분석 엔진입니다. 이 기사에서는 동적 매핑을 사용하여 유연한 검색 기능을 구현하는 방법에 중점을 둘 것입니다.
1. 동적 매핑 소개
Elasticsearch에서 매핑은 인덱스의 데이터 구조와 유형을 정의하는 데 사용됩니다. 동적 매핑이란 Elasticsearch가 매핑 규칙을 수동으로 지정할 필요 없이 인덱스 데이터를 기반으로 필드의 유형과 특성을 자동으로 추론할 수 있다는 의미입니다. 이를 통해 우리는 데이터를 Elasticsearch로 신속하게 색인화하고 유연한 검색을 가능하게 합니다.
2. 동적 매핑 사용
동적 매핑을 사용하기 전에 Elasticsearch 인덱스를 생성해야 합니다. 다음은 간단한 예입니다.
use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 2, 'number_of_replicas' => 0 ], 'mappings' => [ 'dynamic_templates' => [ [ 'strings' => [ 'match_mapping_type' => 'string', 'mapping' => [ 'type' => 'text', 'analyzer' => 'standard' ] ] ] ] ] ] ]; $response = $client->indices()->create($params);
위 예에서는 인덱스에 대해 my_index</라는 인덱스를 생성했습니다. 코드>에서 기본 샤드 수는 2개, 레플리카 수는 0으로 설정됩니다. <code>매핑
에서는 모든 문자열 유형 필드와 일치하고 이를 텍스트
유형에 매핑하고 를 사용하여 분석하는 동적 템플릿 <code>문자열
을 정의합니다. >표준 파서. my_index
的索引,设置了主分片数为 2,副本数为 0。在 mappings
中,我们定义了一个动态模板 strings
,该模板将匹配到所有的字符串类型字段,将其映射为 text
类型,使用 standard
分析器进行分析。
三、使用动态映射进行搜索
使用动态映射进行搜索时,我们不需要明确指定字段的类型,Elasticsearch 将根据映射中定义的类型进行搜索。以下是一个示例:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'php' ] ] ] ]; $response = $client->search($params);
在上述示例中,我们搜索 my_index
索引中 title
字段包含关键词 php
동적 매핑을 사용하여 검색할 때 Elasticsearch는 매핑에 정의된 유형을 기반으로 검색을 수행하므로 명시적으로 필드 유형을 지정할 필요가 없습니다. 예는 다음과 같습니다.
rrreee
title
필드에 php
키워드가 포함된 my_index
인덱스에서 문서를 검색합니다. .
4. 동적 매핑의 적용 가능한 시나리오
위 내용은 php Elasticsearch: 유연한 검색 기능을 달성하기 위해 동적 매핑을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!