2011-11-22 4 views
3

나는 liferay 콘텐츠에 대한 고급 검색을위한 모듈을 개발 중이었고 문서 라이브러리 검색에 문제가있어 문서 유형별로 문서를 검색하라는 요청을 받았으며 실현 가능성을 알고 싶습니다. 이러한 기능을, 나는하는 Liferay 코드를 확인했습니다 및 6.0 또는 그 인덱스 전체 파일 이름Liferay 문서 라이브러리에서 문서 확장으로 검색

친절

이 문제

+0

듣고 싶지는 않을 것 같지만 Liferay의 이후 버전에서는 확장자를 "확장자"필드로 인덱싱하기 시작했습니다. env에 패치를 적용 할 수 있다면 인덱서에 한 줄로 변경됩니다. \t \t \t document.addKeyword ("extension", dlFileEntry.getExtension()); – Ray

+0

답장을 보내 주셔서 감사합니다. 어쨌든 알고 있었고 인덱서 재정의를 찾기 시작했습니다. 인덱서 재정의 권장 사항이 있으면 거기에 답장을 게시합니다. http://stackoverflow.com/questions/8231851/change-liferay-search-indexer 감사합니다. –

답변

1

좀 도와를 사용하는 경우 문서 라이브러리 인덱서 대신 문서 확장 인덱스를하지 않는 것을 발견 높으면 훅 플러그인을 사용하여 문서의 색인이 생성되는 방식을 변경할 수 있습니다.

단순히 com.liferay.portal.kernel.search.BaseIndexerPostProcessor을 확장하고 당신이 변경해야 메소드를 구현하여 포스트 프로세서 클래스에 liferay-hook.xml

<indexer-post-processor> 
    <indexer-class-name>com.liferay.portal.model.DLFileEntry</indexer-class-name> 
    <indexer-post-processor-impl>com.example.hook.indexer.DLFileEntryIndexerPostProcessor</indexer-post-processor-impl> 
</indexer-post-processor> 

에서 정의합니다.

이 경우 색인 필드로 확장에 추가하려면 postProcessDocument을 구현하고 검색 쿼리의 일부로 포함하려면 postProcessSearchQuery 또는 postProcessFullQuery을 구현할 수 있습니다.

관련 문제