2015-01-22 3 views
1

매우 큰 데이터베이스에서 여러 문자열을 검색하려고합니다. 이 문자열은 데이터베이스 테이블의 다른 속성의 일부입니다. SQL 쿼리에서 LIKE을 사용하여 문자열 검색을 시도했습니다. 그러나 결과를 얻는 데는 많은 시간이 필요합니다. Oracle 데이터베이스를 사용했습니다.매우 큰 데이터베이스에서 다중 문자열을 검색하는 방법

데이터베이스의 색인 생성을 사용해야합니까? 그걸로 Lucene을 찾았습니다. 큰 데이터 개념을 사용하기위한 제안이 있습니다. 어떤 방법을 사용해야합니까?

+1

오라클 텍스트는 어떻습니까? –

답변

3

가장 쉬운 방법은 다음과 같습니다 1) @lalitKumarB가

을 쓴 당신은 오라클 텍스트를 사용하여) 트로프 2. 검색하고 싶은 컬럼에 인덱스를 추가

가장 강력한 방법은 다음과 같습니다. 3) 별도의 검색 엔진 (solr, elaticsearch)을 사용하십시오.

는하지만, 아마 당신이 데이터 저점을 검색하는 명시 적으로 사용하기 위해 검색 인덱스를 사용하면 응용 프로그램을 변경해야 ...

나는 몇 년 전에 같은 상황이 있었다. 큰 데이터베이스에서 텍스트를 검색하려고합니다. 필자가 발견 한 바에 따르면, 데이터베이스 기반 검색은 전용 검색 엔진의 성능에 결코 미치지 못합니다. 그리고 맞춤법 교정과 같은 solr (예 :)를 사용하는 경우 훨씬 더 많은 검색 기능을 사용할 수 있습니다 ...

하나의 옵션은 orcale solr에서 검색하고 하나의 행 양식 oracle 만로드하기 위해 문서의 ID를 리턴하면 ID가 참조합니다. 두 번째 옵션은 oracle을 검색 엔진의 기본 데이터 풀로 유지하고 solr (또는 elasticsearch)를 검색하여 ID뿐만 아니라 solr에서 전체 문서/행을 반환하는 것입니다. 따라서 더 이상 데이터베이스에서 데이터를로드 할 필요가 없습니다.

최상의 옵션은 필요에 따라 다릅니다.

+0

Thanks @ The Bndr – hp36

+0

@ hp36이 답변을 가장 유용한 것으로 표시해주세요. –

+0

우리는 elaticsearch 또는 solr에서 일치하는 퍼지 문자열을 사용할 수 있습니까 – hp36

1

당신은 elasticsearch, SOLR 또는 루씬 사이의 선택의 여지가

+1

lucene은 라이브러리이고 solr과 elaticsearch는 lucene을 사용하는 어플리케이션입니다 –

+0

우리는 lucene 이상을 개발할 수 있습니까? 원인의 – Charmi

+1

그러나 마치 "lucene"- 세상은 @ hp36에서 새로운 것 같습니다. 그래서 누군가가 lucene 동등 물을 solr처럼 응용 프로그램으로 취급한다는 것은 일어날 수 있습니다. Lucene은 solr과 같은 out-of-the-box 작업 솔루션이 아닙니다. 즉, 왜 내가이 주석을 썼는가. –

관련 문제