silverstripe module search
3.0.0
tntsearch를 사용하여 컨텐츠를 색인화하는 Silverstripe 검색 모듈.
composer require werkbot/werkbot-search
페이지에 다음 확장을 추가하십시오
Page:: add_extension (SearchableExtension::class);
PageController:: add_extension (SearchControllerExtension::class); dev/build 실행해야합니다
Page::class getIndexQuery 함수를 정의해야합니다. 페이지의 예는 다음과 같습니다.
/**
* getIndexQuery
* This query is used when building the index
*
* @return string|boolean - FALSE if not set
*/
public function getIndexQuery ()
{
return " SELECT
concat( " Page_ " , SiteTree.ID) AS ID,
SiteTree.ClassName,
SiteTree.Title,
SiteTree.Content
FROM
Page
LEFT JOIN
SiteTree
ON
SiteTree.ID = Page.ID
WHERE
SiteTree.ShowInSearch = '1' "
AND
SiteTree.Content IS NOT NULL;
}이것은 인덱서가 컨텐츠를 색인화하는 데 사용하는 간단한 쿼리입니다.
이 기능은 원하는하지만 원하는 경우에 사용자 정의 할 수 있으며 DataObjects에 추가 할 수도 있습니다.
getIndexQuery 메소드가 데이터 확장으로 정의되면 메소드를 추가하는 확장자 전에 SearchableExtension 를 추가해야합니다. 그렇지 않으면 메소드가 기본값을 반환합니다 : false.
SearchableDataObject:: add_extension (SearchableExtension::class); // MUST BE APPLIED FIRST for getIndexQuery to return SQL Query string.
SearchableDataObject:: add_extension (SearchableDataObjectExtension::class); // Defines getIndexQuery SQL Query string. 기본적으로 여기에 사용 된 템플릿은 외부 CSS 라이브러리에서 제공하는 클래스를 사용합니다. 최상의 경험을 위해 둘 다 설치하는 것이 좋습니다.