>  기사  >  PHP 프레임워크  >  Scout를 사용하여 Laravel에 Elasticsearch 검색 엔진 통합

Scout를 사용하여 Laravel에 Elasticsearch 검색 엔진 통합

藏色散人
藏色散人앞으로
2019-10-15 14:32:523373검색

앞에작성

Elasticsearch(이하 es)는 실시간 분산 검색 및 분석 엔진입니다.

검색엔진으로는 Elasticsearch 뿐만 아니라 다른 글에서 언급한 Algolia, sphinx, Solr 등도 있는데 여기서는 평가나 비교는 하지 않겠습니다. laravel Elasticsearch에서 사용하는 방법을 소개합니다.

첫 번째 선택은 Elasticsearch가 설치되어 있어야 합니다.

이 문서는 laravel5.5를 기반으로 하며 다른 버전도 유사합니다.

준비

작곡기를 통해 종속성 패키지 설치

composer require laravel/scout
composer require tamayo/laravel-scout-elastic

기본 구성 # 🎜🎜#

config/app.php 파일의 공급자 배열에 서비스 공급자 추가

// config/app.php
'providers' => [
    // ...
    Laravel\Scout\ScoutServiceProvider::class,
    // ...
    ScoutEngines\Elasticsearch\ElasticsearchProvider::class,
],

스카우트 구성 파일을 생성하려면 다음 명령을 사용하세요

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
#🎜🎜 #In Add elasticsearch 구성을 config/scout.php

    'elasticsearch' => [
        'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
        'hosts' => [
            env('ELASTICSEARCH_HOST', 'http://localhost:9200'),
        ],
    ],

그런 다음 .env 파일을 열고 scout 및 elasticsearch 구성을 추가합니다

# scout配置
SCOUT_DRIVER=elasticsearch
SCOUT_PREFIX=
# elasticsearch 配置
ELASTICSEARCH_INDEX=esdemo
# elasticsearch 地址
ELASTICSEARCH_HOST=http://172.30.6.1:9200

색인 생성#🎜 🎜 #

모델 생성 및 데이터 입력

모델 앱 생성/Student.php 후속 테스트를 용이하게 하려면 테이블을 생성하고 먼저 데이터를 입력하세요. SQL 문을 사용하여 수동으로 데이터를 추가하거나 laravel을 사용하여 자동으로 데이터를 마이그레이션하고 채울 수 있습니다.

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
/**
 * 学生模型
 */
class Student extends Model
{
    use Searchable;
    /**
     * 索引名称
     *
     * @return string
     */
    public function searchableAs()
    {
        return &#39;students_index&#39;;
    }
    /**
     * 可搜索的数据索引
     *
     * @return array
     */
    public function toSearchableArray()
    {
        $array = $this->toArray();
        // Customize array...
        return $array;
    }
}
가져오기에 성공했나요?

php artisan scout:import "App\Student"

es를 방문합니다. http://172.30.6.1:9200/esdemo/students_index/_search

방금 가져온 Students_index 인덱스 데이터가 이미 있습니까?#🎜 🎜 #Done

php artisan scout:import "App\Student"
Imported [App\Student] models up to ID: 500
Imported [App\Student] models up to ID: 1000
Imported [App\Student] models up to ID: 1500
Imported [App\Student] models up to ID: 2000
Imported [App\Student] models up to ID: 2500
Imported [App\Student] models up to ID: 3000
Imported [App\Student] models up to ID: 3500
Imported [App\Student] models up to ID: 4000
Imported [App\Student] models up to ID: 4500
Imported [App\Student] models up to ID: 5000
Imported [App\Student] models up to ID: 5500
Imported [App\Student] models up to ID: 6000
Imported [App\Student] models up to ID: 6500
Imported [App\Student] models up to ID: 7000
Imported [App\Student] models up to ID: 7500
Imported [App\Student] models up to ID: 8000
Imported [App\Student] models up to ID: 8500
Imported [App\Student] models up to ID: 9000
Imported [App\Student] models up to ID: 9500
Imported [App\Student] models up to ID: 10000
All [App\Student] records have been imported.

데이터베이스에 직접 쿼리하는 것보다 검색 속도가 훨씬 빠르나요?

자세한 사용법은 공식 문서를 참조하세요

https://www.elastic.co/guide/...

더보기 Laravel 관련 기술 기사를 보려면 Laravel Framework Getting Started Tutorial

컬럼을 방문하여 알아보세요!

위 내용은 Scout를 사용하여 Laravel에 Elasticsearch 검색 엔진 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제