用于可扩展全文搜索的分布式 Lucene

Apache Lucene 是非常流行的免费开源全文搜索引擎,最初用 Java 编写,但也移植到 .NET。 Lucene 是一个独立的库,应用程序嵌入它以执行全文搜索。

NCache 已在 .NET 中通过其内存中分布式缓存(因此称为分布式 Lucene)以本机形式实现了 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 那是一个内存中分布式数据存储。 因此,分布式 Lucene 也在内存中,因此速度非常快。
  • - Lucene 索引分区: 为了提供可扩展性,Lucene 索引在集群中的所有服务器上进行分区。 这样,当您向集群添加更多服务器时,Lucene 索引会自动重新分区并 redis通过使用以一种智能的方式致敬 NCache 分区副本缓存 拓扑结构。
  • - 并行搜索: 由于 Lucene 索引是分区的,当您的应用程序发出全文搜索查询时,分布式 Lucene 会将其发送到集群中的所有服务器。 而且,通过这种方式,您的查询可以跨多个服务器并行运行。 然后,所有这些并行查询的结果在返回到您的应用程序之前被合并。
  • - 在运行时从集群中添加/删除服务器: 您可以添加更多服务器 NCache 在运行时集群,而无需停止您的应用程序或重建您的 Lucene 索引。 Lucene 索引是自动的 redis向集群中的所有服务器致敬,没有任何中断。
  • - 在运行时增长 Lucene 索引 您可以在运行时向 Lucene 索引添加更多项,而无需停止或重建整个 Lucene 索引。

高可用性

以下是分布式Lucene在该领域的一些亮点:

  • - Lucene 索引已复制: Lucene 索引在集群中的所有服务器上进行分区。 然后,每个分区通过使用复制到集群中的不同服务器 分区副本缓存 拓扑结构 NCache. 这确保了高可用性,因此如果任何服务器出现故障,此分区的副本将自动可用而不会中断。
  • - NCache 集群是动态的:该集群的动态性质 意味着如果任何一台服务器出现故障,集群会自动调整自己以使用更少的服务器。 而且,所有这一切都在没有任何中断的情况下发生。 同样,如果您需要在运行时增加服务器的数量,集群会自动将其添加到集群中而不会出现任何中断。
  • - 持久化/重新加载 Lucene 索引: 您可以将整个 Lucene 索引持久化到磁盘。 这样,如果您需要降低整个 NCache 集群进行维护,您可以快速重新启动它并重新加载整个 Lucene 索引,而无需任何自定义编程。
  • - 自动加载 Lucene 索引: 使用 缓存加载器 的特点 NCache 编写自定义代码以从数据源加载文档或数据,并在集群启动时构建索引。

接下来做什么?

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。