이것은 검색 구현을 위해 Solarium과 Apache Solr과의 통합을 보여주는 4 부 시리즈의 세 번째 할부입니다. 첫 번째 부분은 핵심 개념과 설정을 다루었 고, 두 번째 세부 Solarium의 설치 및 Solr의 PHP 인터페이스로 구성. 이 기사는 검색 기능 자체를 구축하는 데 중점을 둡니다
주요 개념 :
이 튜토리얼은 Solarium Client를 사용하여 Laravel에서 기본 검색을 구축하는 것이 포함됩니다. 우리는 DISAX를 사용하여 향상된 검색을 탐색하고, 정제 된 결과를 찾아 내고, 동적 필드 및 페이지 매김을 관리하고, 향상된 사용자 상호 작용을위한 필터링을 구현할 것입니다.
.
기본 검색 구현 :
간단한 검색은 다음과 같이 구현할 수 있습니다
Laravel Get 또는 Post 변수 ( 'Q'라는 이름)에서 검색 쿼리를 검색합니다. 자리 표시자는 검색어를 피합니다.
검색 실행 :
결과 수를 검색하십시오 :
결과를 통한 반복 :
라벨 애플리케이션에 통합 :
get 요청의 경우 홈 컨트롤러의 메소드는 다음과 같습니다.
해당 뷰 ()는 결과를 표시합니다 :
DISAX로 검색 강화 :
여러 필드에서 검색하려면 (예 : 'Title', 'Cast', 'Synopsis') DISLAX 사용 :
이것은 '제목'필드에서 일치를 우선시합니다
반환 된 필드 지정 : $query = $client->createSelect();
$query->setQuery('%P1%', [Input::get('q')]); // Using a placeholder for secure input
로그인 후 복사
어떤 필드를 제어하는지 :
Input::get('q')
<🎜 🎜> <<> 분류 결과 : <🎜 🎜> %P1%
<: :> <🎜 🎜>를 사용하여 결과를 정렬하십시오
<🎜 🎜> <<> 페이지 매김 : <🎜 🎜>
및 $resultset = $client->select($query);
로그인 후 복사
<<> Faceted Search :
<🎜 🎜>
측면을 사용하면 사용자가 결과를 필터링 할 수 있습니다. '등급'필드에서 측면을 생성하려면 : <🎜 🎜>
printf('Your search yielded %d results:', $resultset->getNumFound());
로그인 후 복사
디스플레이 패싯 카운트 : <🎜 🎜>
<(> 범위 패싯 (예 : 10 년) : <🎜 🎜>
<🎜 🎜> <<> 패싯으로 필터링 : foreach ($resultset as $document) {
// Access fields as public properties (e.g., $document->title) or iterate:
foreach ($document as $field => $value) {
if (is_array($value)) $value = implode(', ', $value); // Handle multi-value fields
print '<strong>' . $field . '</strong>: ' . $value . '<br>';
}
}
로그인 후 복사
패싯 선택을 기반으로 필터링을 추가하십시오 :
뷰는 이러한 패싯을 기반으로 필터링 링크를 포함하도록 업데이트되어야합니다. 이를 위해서는 를 사용하여 적절한 쿼리 매개 변수로 URL을 생성해야합니다. (간결성에 대해서는 세부 뷰 코드가 생략되었지만 원본 텍스트에 요약 된 원칙을 따릅니다).
이 강화 된 설명은 Laravel 애플리케이션 내에서 태양 및 Solr Integration의보다 구조적이고 상세한 연습을 제공합니다. 코드를 특정 데이터 모델 및 애플리케이션 구조에 조정해야합니다.
위 내용은 검색을 위해 Solr과 함께 Solarium 사용 - 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!