项目搜索功能,要用到sphinx,请教几个基础问题哦
求有经验的朋友告知。
以下是我的猜测:
spginx安装启动后,在项目中(以PHP为例)可以引入相关的spginx API,这些API中有查询相关的API,平常我们使用like语句查询,有了sphinx后就用查询API来查询。
是这样吗?
那么像这些配置文件又是怎么回事呢?有什么用呢?
初学sphinx,有点乱,希望懂得人可以解释一下。
感激不尽
回复内容:
按照网上的教程安装好也启动了sphinx,但是完全不知道它是怎么个运作模式啊,我应该怎么使用它呢?
求有经验的朋友告知。
以下是我的猜测:
spginx安装启动后,在项目中(以PHP为例)可以引入相关的spginx API,这些API中有查询相关的API,平常我们使用like语句查询,有了sphinx后就用查询API来查询。
是这样吗?
那么像这些配置文件又是怎么回事呢?有什么用呢?
初学sphinx,有点乱,希望懂得人可以解释一下。
感激不尽
首先sphinx独立于项目,你可以理解成一个数据库。
所有需要搜索的数据都存储在sphinx中,比如文章、商品、用户等。
使用时要先把数据存储到sphinx中。
可以使用sphinx自己的indexer来生成索引,让sphinx把所有的数据从MySQL中获取到然后存储到自己的索引中。
然后就可以调用sphinx的api从sphinx中检索数据。
一般从sphinx检索出数据的ID然后根据ID再去数据库中获取最新的数据(以防数据不一致,比如商品的库存、最新价格等)
类似的产品还有很多
比如国外的Elasticsearch ( https://www.elastic.co/products/elasticsearch )
国产的XunSearch ( http://www.xunsearch.com ) 据说Segmentfault使用的XunSearch
与Sphinx不同的是,你需要自己写一个程序或脚本把数据同步到他们自己的索引数据库中。