2011-07-28 10 views
1

저는 오래 전부터 다른 개발자가 만든 오래된 대형 사이트에서 일하고 있습니다. (명확하게하기 위해 몇몇 부품들이 생략)Lucene 색인 생성에서 바닥 글, 머리글 및 탐색을 제외 하시겠습니까?

$this->index = Zend_Search_Lucene::open($path); 
$html = file_get_contents($document["path"]); 
$doc = Zend_Search_Lucene_Document_Html::loadHTML($html); 
$doc->addField(Zend_Search_Lucene_Field::Text('url', $document["path"])); 
$this->index->addDocument($doc); 

이 문제는 사이트 탐색, 바닥 글 및 헤더뿐만 아니라 색인을 생성된다 : 그는 자신의 모든 HTML 양식의 모든 페이지를 색인, 사이트 검색 엔진으로 루씬을 사용하고있다 - "저작권"에 대한 검색을 수행하면 모든 단일 페이지가 반환됩니다.

전체 HTML 콘텐츠를 색인 할 때 전환 할 수있는 스위치가 있습니까? Lucene에 대한 사전 경험이 없지만 모든 페이지에있는 요소를 제외 할 수있는 방법이 없다면 전체 페이지를 색인하는 것이 꽤 쓸모없는 것처럼 보입니다. 또는 HTTP를 통해 순환시키는 대신 데이터베이스에서 내용을 색인화하기 위해 검색을 다시 작성해야합니까?

답변

1

Delve inside the Lucene indexing mechanism을 참조하면 전체 HTML이 아닌 텍스트 정보 만 lucene에 저장하는 것이 현명하다고 말합니다.

직접 데이터베이스에 액세스 할 수있는 경우 열 데이터를 "필드"로 저장하면 검색에 대한 세부적인 제어가 제공됩니다 (예 : 해당 필드에서 부울 및 범위 쿼리 수행).

+0

그래서 데이터베이스에서 바로 필드를 사용하는 것이 분명히 방법입니다. 조언과 매우 계몽적인 링크에 감사드립니다! – Kaivosukeltaja

관련 문제