지리적 위치 검색을 위해 PHP에서 Elasticsearch 사용
요약: 이 기사에서는 PHP와 Elasticsearch를 사용하여 지리적 위치 검색 기능을 구현하는 방법을 소개합니다. Elasticsearch를 구성하는 방법, 지리적 위치 데이터를 색인화하는 방법, 지리적 위치 검색을 수행하는 방법 및 해당 PHP 코드 예제를 제공하는 방법을 살펴보겠습니다.
시작하기 전에 PHP와 Elasticsearch가 설치 및 구성되었는지 확인해야 합니다. 다음 단계에 따라 완료할 수 있습니다.
2.1 Elasticsearch 서비스 시작:
Elasticsearch 서비스를 시작하려면 명령줄에 다음 명령을 입력하세요.
elasticsearch
2.2 인덱스 만들기:
명령줄에 다음 명령을 입력하세요. "locations"라는 인덱스 만들기:
curl -XPUT 'http://localhost:9200/locations'
3.1 지리적 위치 매핑 만들기:
경도와 위도 정보가 포함된 "location"이라는 지도를 만듭니다. 명령줄에 다음 명령을 입력합니다.
curl -XPUT 'http://localhost:9200/locations/_mapping' -H 'Content-Type: application/json' -d ' { "properties": { "location": { "type": "geo_point" } } }'
3.2 지리 위치 데이터 색인:
다음 샘플 데이터를 사용하여 문서를 생성하고 "위치" 색인에 색인을 생성합니다.
<?php require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); $params = [ 'index' => 'locations', 'type' => 'location', 'id' => '1', 'body' => [ 'location' => [ 'lat' => 37.7749, 'lon' => -122.4194 ] ] ]; $response = $client->index($params); print_r($response);
4.1 생성 위치정보 검색 쿼리:
다음 샘플 코드를 사용하여 위치정보 검색 쿼리를 만듭니다.
<?php require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); $params = [ 'index' => 'locations', 'type' => 'location', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ 'match_all' => (object) [] ], 'filter' => [ 'geo_distance' => [ 'distance' => '100km', 'location' => [ 'lat' => 37.7749, 'lon' => -122.4194 ] ] ] ] ] ] ]; $response = $client->search($params); print_r($response);
위의 예에서는 "geo_distance" 필터를 사용하여 위치정보 검색을 수행하고 검색 반경을 100km로 설정하고 위도를 지정했습니다. 및 중심 위치의 경도입니다.
4.2 검색 결과 가져오기:
검색 결과의 "hits" 필드를 기반으로 일치하는 문서 목록 가져오기:
<?php // ... print_r($response['hits']['hits']);
위 코드는 검색 결과의 일치하는 문서 목록을 인쇄합니다.
위의 단계를 통해 Elasticsearch 구성, 지리적 위치 데이터 색인화, 지리적 위치 검색 기능 구현을 성공적으로 완료했습니다. 보다 복잡한 쿼리 요구 사항을 충족하기 위해 실제 요구 사항에 따라 코드를 더욱 확장하고 최적화할 수 있습니다.
참고 자료:
위 내용은 PHP에서 지리적 위치 검색을 위해 Elasticsearch 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!