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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!