검색 엔진 Lucene 대 데이터베이스 검색
저는 MySQL 데이터베이스를 사용하고 있으며 데이터베이스 기반 검색을 사용하고 있습니다.데이터베이스 엔진과 루씬 검색 엔진의 장점과 단점은 무엇입니까?언제 어디서 사용해야 하는지에 대한 제안을 하고 싶습니다.
저는 당신이 전체 텍스트 검색 엔진과 DBMS를 읽는 것을 제안합니다. 한 줄로 요약하자면: 만약 당신의 사용 사례가 대부분 전체 텍스트 검색이라면, Lucene을 사용하세요.사용 사례의 대부분이 조인 및 기타 관계형 작업인 경우 데이터베이스를 사용합니다.보다 복잡한 사용 사례를 위해 하이브리드 솔루션을 사용할 수 있습니다.
텍스트 문서(모든 길이)를 색인화하고 해당 문서 내에서 텍스트를 검색하여 검색 질의와 일치하는 문서의 순위 목록을 반환하려면 Lucene을 사용합니다.전형적인 예는 구글과 같은 검색 엔진으로 루씬과 같은 텍스트 인덱서를 사용하여 웹 페이지의 내용을 인덱싱하고 쿼리합니다.
Mysql과 같은 데이터베이스보다 Lucene을 사용하여 텍스트를 인덱싱하고 검색할 때의 이점은 다음과 같습니다.
- 개발자를 위한 도구 - 여러 언어로 텍스트 정보를 분석, 구문 분석 및 인덱싱(예: 스머칭, 복수, 동의어, 토큰화).또한 Lucene은 텍스트 검색에 적합한 확장성을 제공합니다.
- 사용자 품질 검색 결과입니다.Lucene은 검색 질의를 각 문서와 비교하기 위해 매우 우수한 유사성 함수를 사용하며, 그 중심에는 코사인 유사성과 역항/문서 빈도가 있습니다.이렇게 하면 사전에 거의 조정할 필요 없이 좋은 검색 결과를 얻을 수 있습니다.
회사에서 SQL Server를 사용하여 전체 텍스트 검색을 사용하는 쿼리를 만들었습니다.대량의 데이터가 있는 경우 Sql은 전체 텍스트 검색에 의해 반환된 결과 집합과 나머지 쿼리 간의 내부 조인을 수행합니다. 이는 데이터베이스가 전원이 부족한 시스템(20GB의 데이터에 대해 2GB RAM)에서 실행되는 경우 속도가 느릴 수 있습니다.동일한 쿼리를 Lucene으로 전환하면 속도가 상당히 향상됩니다.
Lucene 검색에는 인덱싱의 이점이 있습니다.이 게시물은 루시엔을 이해하는 데 도움이 될 수 있습니다.
언급URL : https://stackoverflow.com/questions/4638671/search-engine-lucene-vs-database-search
'programing' 카테고리의 다른 글
치명적인 예외가 발생했을 때 php가 500을 반환하도록 하려면 어떻게 해야 합니까? (0) | 2023.07.28 |
---|---|
매일 같은 시간에 작업을 수행하는 Python 스크립트 (0) | 2023.07.28 |
iframe은 왜 이렇게 느립니까? (0) | 2023.07.28 |
소문자 및 대문자(jQuery 포함) (0) | 2023.07.28 |
제약 조건 레이아웃을 백분율 값으로 작동시키는 방법은 무엇입니까? (0) | 2023.07.28 |