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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!