sphinx日常使用记录-2
sphinx官方提供的php操作sphinx的sdk可以在在网上下载,
SphinxClient.php
sphinx官方提供的php sdk个人感觉不是很好用,也不好记下来。
比如操作一次content_type=1, title或者content搜索关键字的查询:
$client = new SphinxClient(); $client->SetServer('127.0.0.1', '9312'); $client->SetConnectTimeout(5); $client->SetArrayResult ( true ); $client->SetMatchMode ( SPH_MATCH_EXTENDED2 ); $client->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 ); $client->SetFilter('content_type', [1]); $client->Query("title@标题|content@标题", 'blog'); 我按照自己的使用习惯大概的改造成像laravel,thinkphp6框架的orm类似的操作。
SphinxModel.php
现在操作sphinx就比较方便了:
$blogs = SphinxModel::instance()->setIndex('blog')->where('content_type', 1)->whereLike(['title', 'content'], '标题')->order(['reading_num' = 'desc'])->select(); 这里参考thinkphp6中的orm操作来写的,后面查询数据就可以按照平时工作orm的习惯的操作。
sphinx还提供了文字高亮的功能,对应文件中的highlight方法。只需要把要操作的数据,高亮的字段和关键字传进去就可以把文字设置高亮。sphinx还提供的额外的设置,需要看他的api。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu