2012-03-13 2 views
1

방금 ​​Lucene에 대해 배우기 시작했는데 문서 검색 등에 매우 유용 할 수 있지만 누구나 데이터베이스 데이터 검색에 사용합니까? 예를 들어 Lucene을 데이터베이스 데이터와 함께 사용하기

,

나는 두 개의 필드 ("설명", "메시지")를 기반으로 키워드를 검색하는 검색을 확인해야합니다.

이렇게하려면 모든 설명 행과 모든 메시지 행 (수만 개가 될 수 있음)을 반환하는 SQL 쿼리를 작성한 다음 인덱스를 생성하고 인덱스를 검색해야합니다.

내 이해가 정확합니까? 우선 데이터베이스에서 거대한 데이터를 모두 가져와야합니다.

+0

해당 필드에 대해서는 sql 데이터베이스에서 전체 텍스트 검색을 사용하고 사용자 문서에서는 Lucene을 사용하지 않는 것이 좋습니다. 그렇지 않으면 데이터를 덤프해야합니다. –

답변

1

귀하의 이해가 정확합니다.

표시된대로 Lucene에 대한 색인을 만들어야합니다. 작성한 색인을보기 위해 Luke를 권하고 싶습니다.

전체 텍스트 검색이 궁극적으로 더 좋은 이유는 무엇입니까? - 값이 업데이트 될 때마다 데이터베이스의 외부에있는 Lucene 인덱스를 업데이트해야합니다. 이것은 내가 처리하기를 원하지 않는 오버 헤드이며 궁극적으로 이러한 접근 방식을 포기하게되었습니다.

FTS는 적어도 내 요구에 맞는 좋은 결과를 제공합니다.

+0

예, 이것은 나에게도 큰 관심사였습니다. 데이터를 검색하지 않고 단지 데이터를 얻는 것일 수도 있습니다. 나는이 경우에 데이터 검색이 Lucene을 사용함으로써 얻을 수있는 이점을 없앨 수 있는지 알아 내려고하고있다. 현재로서는 많은 데이터가 없지만 미래를 알면 좋을 것입니다. – chobo

+0

조금 더 살펴보면 mssql 2008의 전체 텍스트 검색 기능을 사용하게 될 것입니다. 검색 엔진은 stoplist와 구문 검색 기능을 제공하며 꽤 빠르다고합니다. 나는 Lucene이 아마 과잉 공격 일 것이라고 생각한다. Lucene과 함께 간다면 아마도 수 시간이 걸릴 때마다 색인을 다시 작성할 것입니다. – chobo

+0

그냥 잠깐, 색인을 다시 작성할 필요가 없습니다. 그냥 업데이트하면됩니다. Lucene은 또한 거의 실시간으로이 기능을 제공합니다. 그러나 소량의 데이터와 간단한 쿼리가 있으면 SqlServer FTS가 필요에 더 적합 할 수 있습니다 –

5

만약 당신이 (당신이 무엇이든 사용하기 위해 열려 있다면) Solr을 시도해보십시오. 그것은 데이터 가져 오기 처리기를 사용하여 데이터베이스 콘텐츠 색인 생성을 지원합니다. 데이터베이스에있는 전체 텍스트 데이터의 1 조 1 백 + 행을 인덱싱하는 데 사용하고 있습니다.

+0

이 웹 사이트 링크가 있습니까? 사이트 이름이 자사 제품과 관련이없는 것 같습니다. – chobo

+2

http://lucene.apache.org/solr/ –

관련 문제