2015-04-15 94 views
3

我想在PHP/MySQL项目中实现一个真正的搜索引擎。任何人都可以指出我正确的方向是什么才是做这种事情的最佳方式?基于Solr的搜索引擎入门

  • 搜索用户
  • 用户均位居/排序上的各种参数

这样的参数可以是: - 评论数由 - 地质 - 喜欢上你的个人资料 号距离最终用户的距离

我真正关心的是,像Solr这样的搜索引擎需要我上传“文档”/数据集。但由于我的数据是“活的”,我应该每次用户在我的网站上进行交互时不断更新Solr文档吗?在那种情况下,它就像一个冗余数据库。

类似项目是怎么做的?

+1

搜索引擎索引通常是一个“冗余数据库”。您可以随时尝试使用MySQL中的全文搜索功能(取决于您正在运行的版本),但Solr,ElasticSearch,Lucene等可能具有更多功能。 – halfer

+1

是的,每次更新相关行时,都必须更新搜索索引以保持完整的可搜索性。如果这太昂贵了,您可以随时选择让索引落后于您的模型 - 在很多情况下,全新的更新在五分钟内无法完全搜索并不重要。 – halfer

+0

感谢您的反馈。所以我在正确的轨道上:-) – Zoon

回答

0

一般而言,您的关注是正确的:作为一个基于倒排索引的引擎,Solr依赖于提供其功能的“不可变”结构。

最重要的是,根据您的情况,有很多事情可以缓解这方面的问题。我建议你检查SolrCloud功能,特别是近实时搜索。动态分片也可能是另一回事,但这取决于你的场景。

+1

已经使用AWS,我选择尝试基于Solr的Amazon CloudSearch。 – Zoon