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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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