PHP使用Sphinx API对Mysql数据进行全文检索

PHP调用API接口的方法及实现 API(Application Programming Interface),应用程序编程接口,是一种用于不同应用程序之间通信的协议。简单来说,API就是一组可编程的约定,用于定义应用程序如何与其他程序或服务器通信。通过API,一个应用程序可以请求另一个应用程序的服务或数据,或将自己的服务或数据提供给其他应用程序使用。API通常采用HTTP或SOAP等标准协议进行通信,支持多种数据格式的交换,例如XML、JSON、CSV等。API通常需要进行身份验证和参数传递,以确保数据的有效性和安全性。 阅读详情
//使用sphinx进行全文检索
function search_by_sphinx($keywords,$offset,$limit) {
	include_once app_path() . '/mylibs/sphinxapi.php';
	$client = new \SphinxClient();
	$host = "127.0.0.1";
	$port = 9312;
	$client->SetServer ( $host, $port );
	$client->SetConnectTimeout ( 1 );
	$client->SetArrayResult ( true );
	$client->SetLimits($offset,$limit);
	//$client->SetSortMode(SPH_SORT_ATTR_DESC,'view_count');
	
	$index_name = "index_demo";
	
	$keywords_clean = $keywords;
	$words_list_new = array();
	// | 表示或的意思
	$words_list = explode('|',$keywords);
	foreach ($words_list as $value) {
		if (mb_trim($value) == '') continue;
		if (mb_strlen($value) > 2) {
			//超过2个字符,使用模糊匹配
			$words_list_new[] = '(' . $value . ')';
		} else {
			//小于等于两个字符,使用必须包含符号;双引号表示必须包含;
			$words_list_new[] = '("' . $value . '")';
		}
	}
	//重新用空格分割
	$keywords_clean = implode('|',$words_list_new);
	$keywords = $keywords_clean;

	//全文检索
	$r = $client->Query($search_str,$index_name);

	$total = $r['total'];
	$total_found = $r['total_found'];
	$matches = $r['matches'];
	
	//组合一下结果
	$list_arr = array();
	$list_arr['total'] = $total;
	$list_arr['total_found'] = $total_found;
	$list_arr['matches'] = $matches;
	return $list_arr;
}

 

PHP使用Sphinx查询速度很快,结果也匹配的很不错,算是轻量级的解决方案。

目前,古诗句网和广场舞网站都用的不错,接下来有很多地方都能用到。

PHP+MySQL+sphinx+scws实现全文检索功能详解 本文实例讲述了PHP+MySQL+sphinx+scws实现全文检索功能。分享给大家供大家参考,具体如下: 我的个人环境是PHP7.1+MariaDB10.1.23 下载安装资源包 sphinx地址 http://sphinxsearch.com/downloads/release/ PHP的sphinx扩展下载 http://pecl.php.net/package/sphinx SCWS 下载地址 http://www.xunsearch.com/scws/download.php SCWS 词库下载地址 http://www.xunsearch.com/scws/do 立即下载

相关推荐

Blender SMPL-X 插件安装

Blender XMPL-X 插件安装

heleneveryday的专栏 5358

php api数据,php API查询数据

session_start();if (key_exists('page', $_GET)) {if(intval($_GET['page'])>0){// 判断是否存在次数if (isset($_SESSION['LIMIT'])) {// 判断是否已经访问了2000次if ($_SESSION['LIMIT'] > 2000) {// 判断如果超过2000次则12小时后才能再次访问...

weixin_28882363的博客 255

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5621

PHP+Sphinx+MySQL实现全文检索

理论篇 sphinx 可以解决 站内搜索的应用场景(用来生成索引数据,为后续的高效搜索做铺垫) sphinx 简介 sphinx是一个基于SQL(mysql sqlserver... )的全文检索引擎,它提供了比数据库更加专业的搜索功能,并且sphinx特别为一些脚本语言设计了搜索的API接口吗,比如PHP、Ruby、Python等,同时为MySQ...

jartins的博客 6237

2-6-1-1 QNX编程入门之进程和线程(一)

文章围绕进程和线程展开介绍。先是将进程类比为房子,线程类比为居住者,阐述其基本概念,如进程占用内存,线程可共享内存。接着讲解同步相关内容,介绍了互斥,线程通过互斥锁来控制对特定资源的访问,像使用浴室一样。还提到优先级,线程按优先级和等待时长来决定获取资源顺序。此外,说明了信号量,以厨房为例,区分计数为 1 和大于 1 的信号情况,且指出信号量可当互斥锁用,但互斥锁是特殊用途信号量,二者存在区别,最后提及后续会介绍其他同步机制。

星原飞火的博客 1323

高通CamX架构解析(一)——核心组件与数据流设计

本文深入解析高通CamX相机架构的核心组件与数据流设计。CamX采用模块化与数据驱动思想,将复杂处理流程拆解为Node、Pipeline、Session等独立组件,并通过CHI层实现硬件接口与定制功能的分离。文章详细阐述了从请求下发到结果返回的完整数据流,并提供了实用的调试与分析指南,帮助开发者理解这一高效、灵活的现代相机架构。

k8l9m0n的博客 235

php通过sphinxapi接口实现全文搜索

下面讲解下 php通过sphinxapi接口实现全文搜索 1.首先先在服务器上安装好sphinx并且建立好索引文件,具体安装步骤参考以下链接 windows下: https://www.codelovers.cn/article/20181210180620.html linux下:https://www.codelovers.cn/article/20181211163543.html ...

编程爱好者之家 2554

HDMI端口辐射(EMI)超标解决方案

HDMI端口辐射(EMI)超标解决方案 一、HDMI EMC设计要求: 1、HDMI EMC设计原理图 ( 图 一 ) 2、HDMI元件选型及参数说明:(图一所示) a.L510、L511、L512、L513使用专业EMI共模滤波器(普通共模电感寄生电容太大,会导致TMDS差分阻抗匹配测试失败),阻抗值为90Ω~100Ω(两路共模滤波器型号:CMF1210DH900MFR;四路共模滤波器型号:CMF2010DH101MFR), b.U1、U2为排式ESD(ESD排型号:ESD0524PA),越低的结电容

ltqdxl的博客 1万+

Sphinx中文指南

1.Sphinx简介 1.1.Sphinx是什么 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。通过修改源代码,用户可以自行增

蜗牛的精神 1695

AI预测彩票,使用chatgpt和lstm神经网络(文末附源码)

AI预测彩票,使用chatgpt和lstm神经网络(文末有彩蛋)

淘淘小窝 1万+

LLaMA-Factory微调教程2:命令行sft微调

本文介绍了如何使用llama-factory项目在本地运行Qwen2-7B大语言模型进行对话。首先通过llamafactory-cli env查看环境配置,然后使用git lfs下载Qwen2-7B模型。创建配置文件qwen2_7b_instruct.yaml,修改模型路径和模板参数。最后通过llamafactory-cli chat命令启动对话服务,加载模型配置文件和tokenizer,完成环境初始化后即可进行交互式对话。

Cachel Wood的博客 8814

全文索引Sphinx+binlog日志+Grant用户授权+读写分离和主从复制

一.全文索引Sphinx 1.什么是Sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。它是基于C语言开发出来的.中文翻译为斯芬克司斯芬克司. Sphinx最好的应用操作系统是Linux 2.Sphinx的优势 Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的...

diaibang5024的博客 416

深入浅出AXI协议(2)——通道及信号

本文我们继续AXI协议的学习,我们将讨论5个通道的具体内容和相对应的信号。这一部分的内容现在对于大家来说可能很难理解,但是没有关系,随着学习的深入,我们会逐步讲解这里面的所有现在,现在只需要把它们当作一个可以查阅的手册,快速阅读有一个基本的印象即可。

apple_53311083的博客 1798

sphinx 简介以及安装 以及php拓展开启

一 sphinx 简介 在 使用mysql数据库过程中,如果想实现全文检索的优化,可以使用mysql自带全文索引,但是不支持中文。。关于sphinx的安装网上很多教程写的都 不错比如:http://www.coreseek.cn/products-install/。这里就不再说明安装方法了。有兴趣的可以自己参考。 MySQL在高并发连接、数据库记录数较多的情况下,S...

weixin_30640769的博客 139

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

sphinx

sphinx编译安装:./configure --prefix=/usr/local/sphinx --with-msyql=/usr/local/mysql使用mysql作为数据源 静sphinx监听在9312端口,给其他程序提供调用sphinx 索引词 --> 词所对应的文本IDphp请求sphinx一个词语,shpinx去索引检索这个词语所对应的文本ID,然后返...

weixin_34237596的博客 135

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例

一个文档包含了安装、增量备份、扩展、api调用示例,省去了查找大量文章的时间。 搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 [plain] view plain copy print? cd /var/install  wget http://www.coreseek.cn/uploads/csft/4.

lm_smile的专栏 317

php调用coreseek实例

首先运行php-fpm(设置开机启动的略过) /usr/local/php/sbin/php-fpm -c /usr/local/php/php.ini 启动coreseek服务 首先检测是否开启 netstat -tunlp | grep searchd #启动coreseek /usr/local/coreseek/bin/searchd -c /usr/local/coreseek

zkg510168343的专栏 1246

sphinx php 表,Sphinx介绍

什么是全文检索?全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是文章的作者,也有可能是文章摘要或内容。Sphinx 是什么?Sphinx 是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实 现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索A...

weixin_29378273的博客 178

如何调用Sphinx 和api接口

如何调用Sphinx按上面配置,第5节点对数据库进行了索引,通过Sphinx自带的search(在bin/release目录)就可以在命令行进行搜索:(搜索CGArt)windows上:search -c d:/sphinx/sphinx.conf CGArtLinux上:cd

lyd518的专栏 2454

windows安装sphinx3.0.1(中文检索)

sphinx的简介就不多说,请直接查看文档 1.从spinx官网下载最新版的sphinx 解压。 地址:http://www.sphinxsearch.com/ 2.新建data 和 log 目录 3.新建sphinx.conf配置文件 放在bin目录 下 配置项的信息可以参考etc/sphinx.conf.dist 非常全面。 source doc { typ...

裴伟建的博客 5193

学习笔记-【全文检索引擎Sphinx】

学习笔记-【全文检索引擎Sphinx】

信息学院嵌入式实验室 1018

mysql分表sphinx实例_sphinx 全文搜索应用(二)

一.安装配置安装参见: http://www.ttlsa.com/html/1236.html二.索引说明在查询语句中选择许多列包含在索引中。文档ID(documnet ID)必须位于第一列,并且是一个唯一的无符号的正整数。在这种情况下表中的id字段将被视为创建的索引。文档ID在SQL查询语句中是第一个字段,它必须是一个唯一的非零无符号的非负整数。如果使用多个索引来源,所有来源的文档ID必须唯一。...

weixin_32537985的博客 470

sphinx找不到searchd_mysql.pid_sphinx搜索

2015.8.13使用Mysql实现增加索引以实现加快数据搜索1.增加索引,当你想对某个字段进行like查询或是关联查询时,添加该字段的索引或是在phpMyAdmin中进行索引设置ALTER TABLE `ecs_goods` ADD INDEX(`goods_sn`);2.Sphinx实现索引快速搜索和全文检索介绍:是一个基于SQL的全文检索引擎,它提供了比数据库更专业的搜索功能,并且sphin...

weixin_39624733的博客 176

uni 单选回显数据_千万级Discuz!数据全文检索方案(Sphinx).docx

千万级Discuz!数据全文检索方案(Sphinx)目 录千万级Discuz!数据全文检索方案(Sphinx)1Sphinx快速介绍2一、Sphinx全文检索方案构架图3二、Sphinx中文分词4三、Sphinx安装步骤41.安装、升级所需的程序库42.创建安装文件夹并下载源代码43.安装MMseg中文分词44.安装CSFT(Sphinx的CoreSeek修改版)55.编译Sphinx过程可能出现...

weixin_39842271的博客 147

MySQL中全文检索引擎--Sphinx

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。 Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x...

iteye_14605的博客 190
上一篇: 解决Discuz上传图片(附件)“Upload Error: 500“错误!
流云土豆
博客等级 码龄22年 1粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值