2008-11-05 5 views
1

lucene.net을 사용하여 데이터베이스의 레코드를 인덱싱하려고합니다. 레코드는 여러 테이블에 저장되고 레코드 테이블을 통해 함께 연결됩니다. 각 테이블을 개별적으로 인덱싱하고 검색 결과를 코드로 묶는 것이 더 낫겠습니까? 아니면 데이터베이스에서 나오는 레코드를 묶어 모두 하나의 인덱스에 배치해야합니까?Lucene에서 여러 테이블 인덱싱

다른 제안 사항도 도움이 될 것입니다.

답변

2

각 테이블에 해당하는 Lucene 색인을 만드는 경우 1) 각 색인에 대해 검색을 수행하고 2) 검색 결과를 마법 같은 방법으로 병합해야합니다. Lucene은 이미 여러 필드가있는 문서를 검색하도록 설정되어 있으며 (MultiFieldQueryParser 참조) 통합 된 결과 세트를 제공합니다.

인덱스를 만든 후에 단일 테이블에서 가져온 데이터를 기반으로 검색하려는 경우에도 일반 QueryParser를 사용하여 문서의 해당 필드 만 검색하면됩니다.

1

Lucene이 데이터베이스 테이블에 연결되어 있지 않으면 Lucene 문서에서 원하는 정보를 선택합니다. Lucene이 결과를 병합하고 순위 매기기보다는 직접 처리하는 것이 좋습니다.

+0

테이블에 묶여 있지 않다는 것을 알고 있습니다. 나는 테이블을 그대로두고 검색하거나, 내가 원하는 방식으로 테이블을 끌어 와야하는지 궁금해하고있었습니다. –

+0

테이블의 데이터 구조에 관계없이 Lucene 문서를 이해하는 방식으로 작성해야합니다. 검색하고 싶은 데이터는 무엇이든지 있어야합니다. 그들은 하나의 색인을 사용합니다. 여러 결과를 병합하는 데 따른 고통은 가치가 없습니다. – vfilby