Solr 基础搜索引擎入门指南

3
我希望在PHP/MySQL项目中实现一个真正的搜索引擎。有谁能指导我如何最佳地完成这样的工作?
以下是需要搜索的内容: - 搜索用户 - 根据各种参数对用户进行排名/排序
此类参数可能包括: - 发表的评论数 - 您的个人资料上的点赞数 - 距离最终用户的地理距离
我的真正关注点是,像Solr这样的搜索引擎需要我上传“文档”/数据集。但由于我的数据是“活的”,所以每当用户在我的网站上进行交互时,我应该不断更新Solr文档吗?在这种情况下,它感觉像是一个多余的数据库。
类似的项目如何处理?

1
搜索引擎索引通常是“冗余数据库”。您可以尝试使用MySQL的全文搜索功能(取决于您运行的版本),但Solr、ElasticSearch、Lucene等可能具有更多功能。 - halfer
1
是的,每当相关行被更新时,您都必须更新搜索索引以保持完全可搜索性。如果这太昂贵了,您可以选择让索引落后于模型 - 在许多情况下,如果全新更新在五分钟内无法完全搜索也没有关系。 - halfer
谢谢您的反馈。所以我走在正确的轨道上 :-) - Zoon
1个回答

0
总的来说,你的担忧是正确的:作为一个基于倒排索引的引擎,Solr依赖于这种“不可变”的结构来提供其功能。
除此之外,根据你的情况,还有很多事情可以缓解这个方面。我建议你检查一下SolrCloud的能力,特别是近实时搜索。此外,动态分片可能也是另一种选择,但这真的取决于你的场景。

1
我已经在使用AWS了,但我想尝试一下基于Solr的Amazon CloudSearch。 - Zoon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接