Docs Menu
Docs Home
/ /

텍스트 쿼리 수행

이 가이드 에서는 Laravel MongoDB 사용하여 텍스트 쿼리 실행 방법을 학습 수 있습니다.

텍스트 쿼리 사용하여 지정된 필드 에 텀 또는 구문이 포함된 문서를 조회 수 있습니다. 텀 공백 문자를 제외한 일련의 문자입니다. 구는 임의의 수의 공백 문자가 있는 일련의 용어입니다.

이 가이드 텍스트 검색 에 사용할 수 있는 Eloquent 모델 메서드를 설명하고 예제를 제공합니다. Laravel 통합의 Eloquent 모델에 대해 자세히 학습 Eloquent 모델 섹션을 참조하세요.

이 가이드의 코드 예제를 실행하려면 빠른 시작 튜토리얼을 완료하세요. 이 튜토리얼에서는 샘플 데이터를 사용하여 MongoDB Atlas 인스턴스를 설정하고 Laravel 웹 애플리케이션에서 다음 파일을 만드는 방법에 대한 지침을 제공합니다.

  • Movie.php 파일에 movies collection의 문서를 나타내는 Movie 모델이 포함되어 있습니다.

  • MovieController.php 파일에 데이터베이스 작업을 실행하는 show() 함수가 포함되어 있습니다.

  • browse_movies.blade.php 파일에는 데이터베이스 작업의 결과를 표시하는 HTML 코드가 포함되어 있습니다.

다음 섹션에서는 Laravel 애플리케이션에서 파일을 편집하여 찾기 작업 코드 예제를 실행하고 예상 출력을 보는 방법을 설명합니다.

텍스트 쿼리 수행하려면 먼저 텍스트 값 필드에 텍스트 인덱스 만들어야 합니다. 인덱스 생성에 대해 자세히 학습하려면 스키마 빌더 가이드의 인덱스 관리 섹션을 참조하세요.

$text $search 연산자 와 메서드에 전달하는 쿼리 where() 필터하다 의 필드 차례로 사용하여 텍스트 쿼리 수행할 수 있습니다. $text 연산자 텍스트 인덱스 필드에 대해 텍스트 쿼리 수행합니다. $search 필드 검색 할 텍스트를 지정합니다.

where() 메서드를 사용하여 쿼리 를 작성한 후 get() 메서드를 연결하여 쿼리 결과를 조회 합니다.

이 예시 에서는 Movie Eloquent 모델에서 where() 메서드를 호출하여 plot 필드 에 "love story" 구문이 포함된 문서를 조회 . 이 텍스트 쿼리 수행하려면 컬렉션 에 plot 필드 에 대한 텍스트 인덱스 있어야 합니다.

쿼리를 지정하려면 다음 구문을 사용합니다.

$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();

browse_movies 뷰에서 쿼리 결과를 보려면 MovieController.php 파일 에서 show() 함수를 다음 코드와 유사하게 편집합니다.

class MovieController
{
public function show()
{
$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}
Title: Cafè de Flore
Year: 2011
Runtime: 120
IMDB Rating: 7.4
IMDB Votes: 9663
Plot: A love story between a man and woman ...
Title: Paheli
Year: 2005
Runtime: 140
IMDB Rating: 6.7
IMDB Votes: 8909
Plot: A folk tale - supernatural love story about a ghost ...
Title: Por un puèado de besos
Year: 2014
Runtime: 98
IMDB Rating: 6.1
IMDB Votes: 223
Plot: A girl. A boy. A love story ...
...

텍스트 쿼리는 각 결과가 쿼리 필터의 문자열과 얼마나 일치하는지를 나타내기 위해 숫자 텍스트 점수 를 할당합니다. orderBy() 메서드를 사용하여 textScore 메타데이터 필드 정렬하면 관련성별로 결과를 정렬할 수 있습니다. $meta 연산자 사용하여 이 메타데이터 액세스 할 수 있습니다.

$movies = Movie::where('$text', ['$search' => '"love story"'])
->orderBy('score', ['$meta' => 'textScore'])
->get();

메서드에 orderBy() 대해 자세히 학습 쿼리 출력 수정 가이드 의 쿼리 결과 정렬 섹션을 참조하세요.

Laravel 통합을 사용하여 찾기 작업을 수행하는 방법을 보여주는 실행 가능한 코드 예제를 보려면 다음 사용 예제를 참조하세요.

필터하다 기준에 따라 데이터를 조회 방법을 학습 데이터 검색 가이드 참조하세요.

돌아가기

Retrieve Data

이 페이지의 내용