【问题标题】:How to reduce the latency in case of Indexing files using Lucene.net如何在使用 Lucene.net 索引文件的情况下减少延迟
【发布时间】:2020-06-17 09:46:41
【问题描述】:

您好,我们计划将 lucene.net 用作我们的产品之一,该产品主要是一个内容存储库。为了获得更好的性能,我们的系统将使用 Lucene 查询引擎进行大部分内容读取操作。但我们认为的主要挫折之一是延迟,因为我们不知道集群或分布式 Lucene 实现,这是减少延迟的最佳方法。

【问题讨论】:

    标签: lucene.net


    【解决方案1】:

    根据 cmets,我现在了解到延迟问题与 IP 数据包延迟有关,因为在地球另一端拥有一个索引服务器,而用户位于地球的另一端。

    Lucene.net 和 Lucene 一样,是一个库而不是一个平台。它提供了极快的索引和查询,但不提供更高级别的平台功能,如多服务器分布式索引。 Lucene 确实包含许多支持此类用例的管道,软件产品可以在此管道之上构建以提供多服务器分布式索引。在 Lucene 上构建并提供此类功能的两个最受欢迎的软件平台是 Apache SolrElasticSearch。然而,重要的是要注意它们是建立在 Java 版本的 Lucene 而不是 Lucene.net 之上的。我不知道 Lucene.net 有类似的替代方案,构建自己的替代方案将是一项重大任务。

    但是,您担心的 IP 数据包延迟可能不是一个大问题,让我解释一下。通常可以在 300 毫秒以下,当然也可以在 500 毫秒内向地球的另一端发送 IP 请求。当渲染从地球另一端提供的网页以及从那里提供的大量图像时,这种延迟会迅速增加。如果页面上有 20 张图片加上一些 css 文件和一些 js 文件全部从该服务器加载,则每张图片 300 毫秒,那么渲染页面可能需要 25 个请求。在每个请求 300 毫秒的延迟下,这种情况将承受 7500 毫秒的延迟,即 7.5 秒。实际上,一些请求可以并行处理,这将减少有效延迟,但在此延迟之上,服务器必须做一些工作来满足请求,这也需要时间。无论如何,此示例仅用于说明目的,同意从世界另一端提供网页确实会引起 IP 延迟问题。

    但是, 从地球的另一端从 Lucene 发出搜索请求并没有类似的问题,因为它只需要一个请求。因此,例如,如果一个人需要向地球另一端运行 Lucene.net 的 API 服务器发出搜索,则该请求(可能是 json)是单个请求,它具有 IP 延迟,例如 300 毫秒。该请求由 Lucene.net 提供服务,结果作为对该请求的单个响应返回,然后发出请求的应用程序或网页呈现结果。因此,总 IP 延迟只是单个请求的 IP 延迟,对于许多用例来说,在全球范围内都可以很好地完成。

    【讨论】:

    • 我们正在开发一个 SAAS 平台,其中内容使用索引引擎 (Lucene) 进行索引,由于我们的 stak 完全在 microsoft tech 中,我们决定使用 lucene.net(还有一些其他用例这就是坚持使用 lucene 的原因),但现在我们假设面临的问题是位于遥远位置的用户查询某些内容的响应时间。
    • 您是说您担心 IP 数据包延迟会导致用户在地球另一端的单个索引服务器?那是担心吗?如果是这样,最好更新问题以添加说明。
    • 没错。准确地说,这就是我所关心的
    • 最后我看到了一些与 Lucene.net 相关的东西,它可以有一个带有 nCache 的分布式网络。
    猜你喜欢
    • 2021-12-21
    • 2012-08-10
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    相关资源
    最近更新 更多