>PHP 프레임워크 >Laravel >Laravel 개발: Laravel Scout를 사용하여 전체 텍스트 검색을 구현하는 방법은 무엇입니까?

Laravel 개발: Laravel Scout를 사용하여 전체 텍스트 검색을 구현하는 방법은 무엇입니까?

王林
王林원래의
2023-06-14 10:14:101281검색

Laravel 개발: Laravel Scout를 사용하여 전체 텍스트 검색을 구현하는 방법은 무엇입니까?

Laravel Scout는 Laravel 전체 텍스트 검색 솔루션으로, 개발자가 효율적인 전체 텍스트 검색 기능을 쉽게 구현할 수 있는 인기 있는 오픈 소스 소프트웨어입니다. 이 글에서는 Laravel Scout를 사용하여 전체 텍스트 검색 기능을 구현하는 방법을 소개합니다.

Laravel Scout 설치

먼저 Laravel Scout를 설치해야 합니다. Composer를 사용하여 설치할 수 있습니다:

composer require laravel/scout

그런 다음 Algolia 또는 Elasticsearch와 같은 외부 검색 엔진을 설치해야 합니다. 여기에서는 Algolia를 검색 엔진으로 사용하는 방법을 소개합니다.

Algolia는 강력한 API와 검색 엔진을 쉽게 생성, 구성 및 사용할 수 있는 도구 세트를 제공하는 클라우드 기반 검색 엔진입니다. Algolia를 Laravel Scout의 검색 엔진으로 사용하려면 해당 SDK를 설치해야 합니다:

composer require algolia/algoliasearch-client-php

Configure Algolia

다음으로 Algolia를 구성해야 합니다. 먼저 Algolia 계정을 등록하고 애플리케이션과 인덱스를 생성해야 합니다. Algolia의 사용법은 여기에서 자세히 소개되지 않습니다. 관심 있는 독자는 공식 문서를 직접 확인할 수 있습니다.

그런 다음 Algolia의 애플리케이션 ID와 API 키를 Laravel의 .env 파일에 추가해야 합니다:

ALGOLIA_APP_ID=your_application_id
ALGOLIA_SECRET=your_api_secret

데이터베이스에서 검색 모델을 설정합니다.

다음으로 검색 모델을 정의하고 설정해야 합니다. Laravel Scout에 추가됨 . 이 예에서는 기사 모델을 검색합니다. 먼저 기사 모델에서 Searchable 특성을 사용해야 합니다:

use LaravelScoutSearchable;

class Post extends Model
{
    use Searchable;
    ...
}

그런 다음 검색할 Algolia 인덱스를 지정하기 위해 모델에 searchableAs 메서드를 정의해야 합니다.

public function searchableAs()
{
    return 'posts_index';
}

Algolia에서 이 인덱스를 생성하면 이 인덱스가 기사 기록을 저장하는 데 사용됩니다. 그런 다음 검색 모델(이 경우 Post 모델)에서 toSearchableArray 메서드를 정의해야 합니다.

public function toSearchableArray()
{
    $array = $this->toArray();

    return $array;
}

toSearchableArray 메서드는 검색 가능한 모든 필드가 포함된 연관 배열을 반환합니다.

Laravel Scout로 검색

Laravel Scout와 Algolia의 구성이 완료되었으므로 기사 모델에 검색 모델도 설정했습니다. 이제 애플리케이션에 검색 페이지를 구현해야 합니다.

검색어를 처리하고 검색을 위해 Algolia로 보내는 컨트롤러에 제출되는 검색 양식이 필요합니다. Algolia 인덱스를 검색하려면 Laravel Scout의 검색 방법을 사용해야 합니다.

public function search(Request $request)
{
    $search = $request->get('q');

    $posts = Post::search($search)->get();

    return view('search', compact('posts', 'search'));
}

검색 방법은 검색 결과를 얻을 수 있는 Laravel Scout 검색 결과 세트를 반환합니다.

마지막으로 검색 결과를 사용자에게 표시해야 합니다. 웹 페이지에서는 Laravel의 Blade 템플릿 엔진을 사용하여 결과를 렌더링할 수 있습니다.

@if(count($posts) > 0)
    @foreach($posts as $post)
        <div class="post">
            <h2>{{$post->title}}</h2>
            <p>{{$post->content}}</p>
        </div>
    @endforeach
@else
    <div class="alert alert-warning">
        No results found for "{{$search}}"
    </div>
@endif

Conclusion

Laravel Scout는 Algolia와 같은 외부 검색 엔진을 기반으로 하는 널리 사용되는 전체 텍스트 검색 솔루션으로, 이를 통해 개발자는 효율적인 전체 텍스트 검색을 쉽게 구현할 수 있습니다. 기능. 이 기사에서는 Algolia 구성, 검색 모델 생성, Laravel Scout를 사용하여 애플리케이션에서 검색하는 등 Laravel Scout를 사용하여 전체 텍스트 검색을 구현하는 방법을 배웠습니다. 이를 통해 애플리케이션에 강력한 검색 기능을 더 쉽게 추가할 수 있어 사용자 경험이 향상됩니다.

위 내용은 Laravel 개발: Laravel Scout를 사용하여 전체 텍스트 검색을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.