【发布时间】:2012-02-16 10:47:54
【问题描述】:
我在 PHP/MySQL 中有一个 Holdesk 应用程序。我想实现实时全文搜索,我已经入围了 Solr。 MySQL 数据库将存储所有搜索所需的数据,并将导入用于构建 Solr 索引的数据。所有搜索请求都将由 Solr 处理。
我想要的是
- 实时搜索。有人更新票证的那一刻,它应该可供搜索。
- 如果多人同时更新票证,Solr 应该能够处理提交
根据我对 Solr 的理解,这就是我认为系统的工作方式。用户更新工单 -> 修改对应的数据库记录 -> 向 Solr 服务器发送请求以修改索引中的对应文档。
我读过一本关于 Solr 的书,以下问题困扰着我。
-
书中提到
"在 Solr 中提交速度很慢。根据索引大小,Solr 的 自动预热配置,以及 Solr 之前的缓存状态 提交,提交可能需要很长时间。通常, 这需要几秒钟,但可能需要几分钟 极端情况”
如果这是真的,那么我如何知道数据何时可用于搜索以及如何实现实时搜索?即使它需要几秒钟,它也不能是实时的。另外我不希望工单更新操作变慢(通过添加更新 Solr 索引的额外步骤)
-
还提到了
"没有事务隔离。这意味着如果多个 Solr 客户端将提交修改并在 重叠时间,有可能是一个客户的一部分 在该客户端告诉 Solr 提交之前提交的更改。这 也适用于回滚。如果这对您来说是个问题 架构然后考虑使用一个客户端进程负责 更新 Solr。”
这是否意味着由于缺乏事务性提交,如果多人同时更新票证,Solr 可能会搞砸?
现在摆在我面前的问题是:我可以使用 Solr 实现这两个吗?如果是,如何?
编辑1: 是的!我遇到了几个类似的问题,但没有一个令人满意的答案。于是再次发帖。抱歉,如果您发现它重复。
【问题讨论】:
-
类似(一些链接可能会有所帮助)stackoverflow.com/questions/5909565/…
标签: solr full-text-search real-time lucene