最近一直在寻找一些好的搜索工具,因为在有一个项目里面用了lucene,用ICE来做中间层,所以lucene可以方便的和php进行集成,但是,因为lucene仅仅是一个全文索引的工具,我们希望要一个完整的搜索应用。
有几点是我考虑的
(1)方便与php集成
(2)架构要设计的合理
(3)有社区支持
(4)有成熟的应用案例
(5)效率和成本也是我考虑的一个问题
sphinx在索引和查询的速度上是一个不错的选择,并且对php的支持也很不错,容易集成,数据源支持mysql,还有xml等,我测试了一下sphinx,最终还是没有去选择,因为社区的支持不是很活跃,最麻烦的问题是数据源,如果有多个表的数据关联索引的时候,是一个比较麻烦的问题。
lucene仅仅是一个全文索引的库,没有良好的api和数据接口,与php的集成要用第三方的工具
最后发现solr是一个不错的选择,因为solr是一个application而不是一个library.
(1)如有基于json和xml的数据接口.
(2)架构比较完善,包括索引,搜索,缓存等都有比较完善的考虑。
(3)社区支持还可以,最重要的是基本上不要怎么改动就可以应用,不存在不php集成的问题。
关于php与slor的集成在 php的官方网站上有详细的介绍,要用一个php solr的扩展库,此库依赖curl
php solr 安装配置官方文档
solr的安装与配置 在 solr的wiki中有详细的介绍,仔细看一下php solr的扩展库,其实就是用culr对solr的api进行了一个包装