확장 가능한 전체 텍스트 검색을 위한 분산 Lucene

Apache Lucene은 원래 Java로 작성되었지만 .NET으로 포팅된 매우 인기 있는 무료 오픈 소스 전체 텍스트 검색 엔진입니다. Lucene은 응용 프로그램이 전체 텍스트 검색을 수행하기 위해 포함하는 독립 실행형 라이브러리입니다.

NCache 는 In-Memory Distributed Cache(따라서 Distributed Lucene이라는 이름)를 통해 기본 형식으로 .NET에서 Lucene API를 구현했습니다. 이것은 독립 실행형 Lucene을 .NET용 매우 빠르고 선형 확장 가능한 전체 텍스트 검색 솔루션으로 변환했습니다. .NET Core 응용 프로그램. 또한 기본 Lucene API로 인해 .NET Lucene 애플리케이션과 함께 사용하기 위해 코드를 변경할 필요가 없습니다. NCache.

분산 Lucene 아키텍처

클라이언트 측에서 NCache .NET 애플리케이션에 기본 Lucene.NET API를 제공하므로 애플리케이션의 코드를 변경할 필요가 없습니다. 그리고 백엔드에서, NCache 동일한 Lucene.NET을 사용하여 분산 환경에서 인덱스를 구축하고 나중에 분산 방식으로 전체 텍스트 검색을 수행합니다. 이러한 분산 검색 결과는 응용 프로그램에 표시되기 전에 병합됩니다.

기본 Lucene API

분산된 Lucene NCache 기본 Lucene API를 제공합니다. 결과적으로 다음과 같은 이점을 얻을 수 있습니다.

  • - 코드 변경 없음: 분산 Lucene을 사용하기 위해 Lucene 애플리케이션의 코드를 변경할 필요가 없습니다. 공급자를 다음으로 변경하십시오. NCache.
  • - 업계 표준 API: 응용 프로그램에서 Lucene을 사용하면 업계에서 가장 널리 사용되는 전체 텍스트 검색 API를 사용할 수 있습니다.

매우 빠르고 선형적으로 확장 가능

분산 Lucene은 다음과 같은 이유로 매우 빠르고 확장 가능합니다.

  • - 인메모리(고속): 분산형 Lucene은 NCache 메모리 내 분산 데이터 저장소입니다. 결과적으로 Distributed Lucene도 메모리에 있으므로 매우 빠릅니다.
  • - 분할된 Lucene 인덱스: 확장성을 제공하기 위해 Lucene 인덱스는 클러스터의 모든 서버에 걸쳐 분할됩니다. 이렇게 하면 클러스터에 더 많은 서버를 추가하면 Lucene 인덱스가 자동으로 다시 분할되고 redis사용하여 지능적인 방식으로 공물 NCache 파티션 복제본 캐시 토폴로지.
  • - 병렬 검색: Lucene 인덱스가 분할되어 있으므로 애플리케이션이 전체 텍스트 검색 쿼리를 발행하면 Distributed Lucene이 이를 클러스터의 모든 서버로 보냅니다. 그리고 이러한 방식으로 쿼리가 여러 서버에서 병렬로 실행됩니다. 그런 다음 이러한 모든 병렬 쿼리의 결과는 애플리케이션으로 반환되기 전에 병합됩니다.
  • - 런타임 시 클러스터에서 서버 추가/제거: 더 많은 서버를 추가할 수 있습니다. NCache 애플리케이션을 중지하거나 Lucene 인덱스를 다시 빌드하지 않고도 런타임에 클러스터를 생성할 수 있습니다. Lucene 인덱스는 자동으로 redis중단 없이 클러스터의 모든 서버에 제공됩니다.
  • - 런타임 시 Lucene 인덱스 성장 전체 Lucene 색인을 중지하거나 다시 작성하지 않고도 런타임에 Lucene 색인에 더 많은 항목을 추가할 수 있습니다.

고 가용성

다음은 이 영역에서 Distributed Lucene의 몇 가지 주요 사항입니다.

  • - 복제된 Lucene 인덱스: Lucene 인덱스는 클러스터의 모든 서버에 걸쳐 분할됩니다. 그런 다음 각 파티션은 다음을 사용하여 클러스터의 다른 서버에 복제됩니다. 파티션 복제본 캐시 토폴로지 NCache. 이렇게 하면 고가용성이 보장되므로 서버가 다운되더라도 중단 없이 이 파티션의 복제본을 자동으로 사용할 수 있습니다.
  • - NCache 클러스터는 동적입니다. 전에, 이 클러스터의 동적 특성 즉, 하나의 서버가 다운되면 클러스터가 자동으로 자체 조정되어 하나 적은 서버에서 작동합니다. 그리고 이 모든 것이 중단 없이 이루어집니다. 마찬가지로 런타임에 서버 수를 늘려야 하는 경우 클러스터는 중단 없이 클러스터에 서버를 자동으로 추가합니다.
  • - Lucene 색인 유지/다시 로드: 전체 Lucene 인덱스를 디스크에 유지할 수 있습니다. 이렇게 하면 전체를 종료해야 하는 경우 NCache 유지 관리를 위해 클러스터를 빠르게 다시 시작하고 사용자 지정 프로그래밍 없이 전체 Lucene 인덱스를 다시 로드할 수 있습니다.
  • - Lucene 인덱스 자동 로드: 캐시로더 특징 NCache 사용자 정의 코드를 작성하여 데이터 원본에서 문서 또는 데이터를 로드하고 클러스터 시작 시 인덱스를 빌드합니다.

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.