【问题标题】:Few questions about Solr. Transactions and Realtime search关于 Solr 的几个问题。交易和实时搜索
【发布时间】:2012-02-16 10:47:54
【问题描述】:

我在 PHP/MySQL 中有一个 Holdesk 应用程序。我想实现实时全文搜索,我已经入围了 Solr。 MySQL 数据库将存储所有搜索所需的数据,并将导入用于构建 Solr 索引的数据。所有搜索请求都将由 Solr 处理。

我想要的是

  • 实时搜索。有人更新票证的那一刻,它应该可供搜索。
  • 如果多人同时更新票证,Solr 应该能够处理提交

根据我对 Solr 的理解,这就是我认为系统的工作方式。用户更新工单 -> 修改对应的数据库记录 -> 向 Solr 服务器发送请求以修改索引中的对应文档。

我读过一本关于 Solr 的书,以下问题困扰着我。

  1. 书中提到

    "在 Solr 中提交速度很慢。根据索引大小,Solr 的 自动预热配置,以及 Solr 之前的缓存状态 提交,提交可能需要很长时间。通常, 这需要几秒钟,但可能需要几分钟 极端情况”

    如果这是真的,那么我如何知道数据何时可用于搜索以及如何实现实时搜索?即使它需要几秒钟,它也不能是实时的。另外我不希望工单更新操作变慢(通过添加更新 Solr 索引的额外步骤)

  2. 还提到了

    "没有事务隔离。这意味着如果多个 Solr 客户端将提交修改并在 重叠时间,有可能是一个客户的一部分 在该客户端告诉 Solr 提交之前提交的更改。这 也适用于回滚。如果这对您来说是个问题 架构然后考虑使用一个客户端进程负责 更新 Solr。”

这是否意味着由于缺乏事务性提交,如果多人同时更新票证,Solr 可能会搞砸?

现在摆在我面前的问题是:我可以使用 Solr 实现这两个吗?如果是,如何?

编辑1: 是的!我遇到了几个类似的问题,但没有一个令人满意的答案。于是再次发帖。抱歉,如果您发现它重复。

【问题讨论】:

标签: solr full-text-search real-time lucene


【解决方案1】:

您请求的功能称为近实时搜索,也称为 NRT。 NRT 的工作仍在进行中,但在过去几年中,Solr 中的这种支持已经有了很好的增量改进。有关当前(1.4 - 3.5 版)和未来(4.0 版)对 NRT 的支持的更多详细信息,请参阅以下链接。

NRT 选项

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 2012-10-25
    • 2011-01-21
    • 1970-01-01
    • 2015-05-10
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多