当前位置: 首页 > article >正文

PHP WindSearch实现站内搜索功能

必须极速安装~使用composer安装1composer require rock365/windsearch或 使用Git安装1git clone gitgithub.com:rock365/windsearch.git还配置啥立即开始用吧WindSearch包含即用模式、专业模式即用模式适合简单搜索场景专业模式支持复杂搜索。即用模式“即用模式”可以立即导入数据无任何配置支持int主键、uuid主键适合简单的搜索场景。即用模式的各种api均有fast关键字。“即用模式”的原理对字符串进行ngram分词搜索的结果是主键集合你可以使用这些集合从MySQL等数据库查询原始数据。引入文件WindSearch安装完成后引入入口文件注意具体文件路径1require_onceyourdirname/vendor/autoload.php;导入数据1234567891011121314151617// 实例化对象$Windnew\WindSearch\Index\Wind(test);//test 当前索引库的名称// 清空之前的数据如果之前使用即用模式导入过数据$Wind-deleteFastIndex();// 批次导入数据// $res 是从数据库查询的数据foreach($resas$v){$text$v[title];$primarykey$v[id];// $text是需要搜索的具体内容比如title$primarykey是主键值比如id的值$Wind-fastIndexer($text,$primarykey);}//每导入一批数据就调用此方法进行保存$Wind-fastBatchWrite();// 所有数据全部导入完成后接着构建索引不一定非得紧接着调用也可以在其它地方单独调用$Wind-fastBuildIndex();开始搜索123456// 开始搜索$Windnew\WindSearch\Index\Wind(test);// 调用搜索方法// $page 第几页 $listRows 每页多少条$res$Wind-fastSearch($text,$page,$listRows)// $res返回的主键比如id集合你可以使用id集合从MySQL等数据库查询原始数据每个索引库都可以使用即用模式导入数据数据单独存放跟专业模式的数据不冲突由于即用模式属于某个索引库的下属模块所以删除某个索引库时同样会删除即用模式的索引数据所以一个索引库名称尽量只使用一种模式。注意即用模式的搜索效果可能比不上专业模式可根据情况作出取舍。引入文件WindSearch安装完成后引入入口文件注意具体文件路径1require_onceyourdirname/vendor/autoload.php;建索引库复制修改粘贴即可跟mysql建表差不多1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950$mapping [//设置索引库的名称比如对应的表名nametest,// 字段配置field [[nameid,// 主键名称 主键必须设置typeprimarykey,//数据类型为主键 必须设置primarykey_typeInt_Incremental,// int递增],[nametitle,index true,// 是否索引此字段typetext,analyzersegment,// 配置分词方式],[nametags,index true,typekeyword,][namescore,typenumeric,],[nametime,typedate],[namedescr,typetext,],]];// 实例化对象$Windnew\WindSearch\Index\Wind(test);//test 当前索引库的名称//检查是否存在此索引库$is_index$Wind-checkIndex();// 如果存在此索引库if($is_index) {//删除索引库$Wind-delIndex();}//创建索引库$Wind-createIndex($mapping);导入数据123456789101112131415//实例化引擎$Windnew\WindSearch\Index\Wind(test);// 初始化$Wind-buildIndexInit();// 开启分词导入数据时加true可加快速度$Wind-loadAnalyzer(true);// 数据量小内容少于一万条则可以一次性全部导入// selectAll...// $result一次性查询的所有内容foreach($resultas$v) {$Wind-indexer($v);}// 批量写入文件保存$Wind-batchWrite();构建索引123// 数据导入结束后接着可立即调用此方法构建索引// 注意数据量大时此步骤会比较耗时$Wind-buildIndex();开始搜索1234567891011121314151617181920212223242526//实例化引擎$Windnew\WindSearch\Index\Wind(test);//开启分词功能$Wind-loadAnalyzer();//开始搜索// 搜索单个字段$query [match [field [nametitle,query$text,],list_rows$listRows,//每页多少条数据page$page,//第几页]];// 搜索接口$res$Wind-search($query,$page,$listRows);// 返回的最终结果可直接渲染到前台页面$resArr$res[result][_source];以上就是PHP WindSearch实现站内搜索功能的详细内容

相关文章:

PHP WindSearch实现站内搜索功能

必须极速安装~使用composer安装:1composer require rock365/windsearch或 使用Git安装:1git clone gitgithub.com:rock365/windsearch.git还配置啥,立即开始用吧!WindSearch包含即用模式、专业模式,即用模式适合简单搜…...

效率飙升:用快马生成自动化脚本,告别手动vlookup跨表匹配

效率飙升:用快马生成自动化脚本,告别手动vlookup跨表匹配 工作中经常遇到需要跨表格匹配数据的情况,比如把订单表和客户信息表通过订单号关联起来。传统做法是手动用Excel的vlookup函数,但数据量大时不仅操作繁琐,还容…...

终极指南:如何在Windows上直接安装Android应用(无需模拟器)

终极指南:如何在Windows上直接安装Android应用(无需模拟器) 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 您是否曾经希望在Window…...

快速原型实践:用快马平台十分钟搭建静电地板施工模拟器

快速原型实践:用快马平台十分钟搭建静电地板施工模拟器 静电地板施工是机房、实验室等场所装修的重要环节,涉及基层处理、支架安装、地板铺设、接地检测等多个步骤。传统方式下,施工团队需要反复核对图纸、计算材料用量,过程繁琐…...

3分钟上手B站视频下载神器:BilibiliDown让离线观看变得如此简单

3分钟上手B站视频下载神器:BilibiliDown让离线观看变得如此简单 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_…...

Matlab含新能源(风电光伏)和多类型电动汽车配电网风险评估 软件:matpower+Mat...

Matlab含新能源(风电光伏)和多类型电动汽车配电网风险评估 软件:matpowerMatlab: 关键词:蒙特卡洛、时序、电网风险、风险评估、风光不确定性 介绍:由于电动汽车负荷与风电光伏出力的不确定性,造…...

LXMusic音源系统技术重构:从单一链接到智能分发网络的演进

LXMusic音源系统技术重构:从单一链接到智能分发网络的演进 【免费下载链接】LXMusic音源 lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/guoyue2010/lxmusic- 在数字音乐服务领域,音源获取的技术复杂度…...

快速上手 Robotics Toolbox for Python:机器人学编程的终极指南

快速上手 Robotics Toolbox for Python:机器人学编程的终极指南 【免费下载链接】robotics-toolbox-python Robotics Toolbox for Python 项目地址: https://gitcode.com/gh_mirrors/ro/robotics-toolbox-python 想要快速掌握机器人学编程吗?Robo…...

TouchGal终极指南:如何打造纯净Galgame社区体验

TouchGal终极指南:如何打造纯净Galgame社区体验 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 你是否厌倦了在多个网站间…...

Python中线程和进程详解:从入门到高并发实战

目录 一、进程与线程:基础概念 1.1 什么是进程 1.2 什么是线程 1.3 进程 vs 线程:核心区别 二、Python中的线程(threading模块) 2.1 创建线程的两种方式 2.2 线程同步:锁(Lock) 2.3 线程…...

3分钟学会:无需电脑的iOS应用直装神器App-Installer终极指南

3分钟学会:无需电脑的iOS应用直装神器App-Installer终极指南 【免费下载链接】App-Installer On-device IPA installer 项目地址: https://gitcode.com/gh_mirrors/ap/App-Installer 还在为安装第三方iOS应用而烦恼吗?每次都要连接电脑、使用复杂…...

OpCore-Simplify:突破性自动化黑苹果配置工具,让OpenCore EFI生成从8小时缩短到30分钟

OpCore-Simplify:突破性自动化黑苹果配置工具,让OpenCore EFI生成从8小时缩短到30分钟 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simpli…...

Intel(R) Wireless-AC 9461适配器WLAN连接故障(错误代码10)的实用修复指南

1. 问题现象与初步排查 最近有不少用户反馈,使用Intel(R) Wireless-AC 9461无线网卡时突然无法连接WLAN网络,设备管理器中显示黄色感叹号,属性页面提示"该设备无法启动(代码10)"。这种情况通常发生在系统更新…...

MedGemma-X实战案例:如何用AI辅助完成日常放射科阅片工作

MedGemma-X实战案例:如何用AI辅助完成日常放射科阅片工作 1. 引言:当AI遇见放射科 在繁忙的放射科工作中,医生们每天需要解读数十甚至上百张影像。一张普通的胸部X光片,就包含了肺野、纵隔、肋骨、膈肌等多个需要评估的解剖结构…...

告别源码编译:在ARM服务器(如华为云鲲鹏)上快速部署GCC的三种‘懒人’方法

在ARM服务器上高效部署GCC的三大实战方案 当你在华为云鲲鹏或AWS Graviton等ARM架构服务器上搭建开发环境时,是否曾被繁琐的GCC源码编译过程困扰?本文将分享三种经过实战验证的快速部署方案,帮助你在aarch64架构的Linux系统中,用最…...

Anasys Workbanch实战解析:齿轮接触强度有限元分析全流程

1. 齿轮接触强度分析基础认知 刚接触有限元分析的新手工程师常会疑惑:为什么齿轮设计必须做接触强度分析?这个问题要从齿轮传动的实际工况说起。想象一下两个金属齿轮在高速啮合运转时,齿面接触区域实际上只有指甲盖大小的面积,却…...

解锁FNF-PsychEngine创作潜力:从核心功能到高级开发的完整指南

解锁FNF-PsychEngine创作潜力:从核心功能到高级开发的完整指南 【免费下载链接】FNF-PsychEngine Engine originally used on Mind Games mod 项目地址: https://gitcode.com/gh_mirrors/fn/FNF-PsychEngine FNF-PsychEngine是一款基于Haxe语言开发的开源节奏…...

3步实现AI动作迁移:如何让视频人物“学会“任何动作

3步实现AI动作迁移:如何让视频人物"学会"任何动作 【免费下载链接】ComfyUI-MimicMotionWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper 想象这样一个场景:你拍摄了一段朋友的日常视频,…...

Kazumi插件高效管理全攻略:从安装到高级配置一步到位

Kazumi插件高效管理全攻略:从安装到高级配置一步到位 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕,支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi Kazumi…...

利用Keepalived实现K8s Service高可用外部访问:externalIPs与VIP的完美结合

1. 为什么需要Kubernetes Service高可用外部访问? 在自建Kubernetes集群中,如何将服务暴露给外部访问一直是个头疼的问题。我刚开始接触K8s时,最常用的就是NodePort方式,但很快就发现它的致命缺陷——如果指定的节点宕机&#xff…...

CANoe.Diva CDD文件配置避坑指南:DTC导入、会话迁移与NRC设置详解

CANoe.Diva CDD文件高阶配置实战:从DTC陷阱到NRC优化的深度解析 当诊断测试用例在CANoe.Diva环境中频繁失败时,往往不是基础配置出错,而是那些隐藏在CDD文件深处的"高级选项"在作祟。本文将带您穿透表面配置,直击五个最…...

S3DIS点云数据集:室内场景语义分割的实战指南

1. S3DIS数据集简介与下载指南 S3DIS(Stanford Large-Scale 3D Indoor Spaces Dataset)是斯坦福大学发布的室内场景点云数据集,包含6个大型室内区域(Area_1至Area_6),总计271个房间场景。每个点云数据包含…...

数学公式恐惧症?用Python可视化理解雷诺运输定理

数学公式恐惧症?用Python可视化理解雷诺运输定理 第一次看到雷诺运输定理时,那些复杂的积分符号和偏微分表达式确实让人望而生畏。作为工程专业的学生,我们常常需要在流体力学、热传导等课程中应用这个定理,但传统的数学推导方式往…...

GPU显存稳定性终极检测:使用memtest_vulkan保障显卡健康

GPU显存稳定性终极检测:使用memtest_vulkan保障显卡健康 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 显卡显存稳定性直接影响你的游戏体验、设计…...

别再乱插了!从USB鼠标到固态硬盘,一文搞懂电脑USB接口的‘家族树’

别再乱插了!从USB鼠标到固态硬盘,一文搞懂电脑USB接口的‘家族树’ 每次给电脑插USB设备时,你是否遇到过这些糟心事?新买的移动硬盘插上去毫无反应,键盘鼠标突然集体失灵,或者插满四个接口后打印机开始间歇…...

8通道高速数据采集方案对比:Xilinx ZU27DR的ADC/DAC性能实测报告

8通道高速数据采集方案对比:Xilinx ZU27DR的ADC/DAC性能实测报告 在当今高速数据采集领域,系统架构师们正面临着一个关键抉择:是继续采用传统分立式ADC/DAC方案,还是转向集成度更高的RFSoC解决方案?本文将基于Xilinx Z…...

BLE安全实战:从协议栈到应用层,构建防“降级”攻击的立体防御

1. BLE安全威胁与"降级攻击"的本质 当你用手机解锁智能门锁时,有没有想过蓝牙信号可能正在被隔壁楼的设备监听?2019年某知名智能锁被曝光的漏洞就是典型案例——攻击者通过伪造蓝牙MAC地址,诱使门锁将安全连接降级为不加密通信。这…...

Ubuntu下GDB调试QNX程序的5个常见坑及解决方法(AARCH64架构)

Ubuntu下GDB调试QNX程序的5个常见坑及解决方法(AARCH64架构) 调试AARCH64架构的QNX程序就像在迷宫中寻找出口——工具齐全却总有意料之外的障碍。作为在嵌入式领域深耕多年的开发者,我见过太多工程师在Ubuntu上用GDB调试QNX程序时陷入相同的困…...

智能台灯不止于调光:聊聊STM32如何实现坐姿提醒与用眼计时

智能台灯的健康革命:STM32实现坐姿监测与用眼管理的技术实践 当一盏台灯开始关心你的脊椎曲度和用眼健康时,智能硬件的价值才真正显现。在STM32微控制器的驱动下,现代智能台灯已经进化成能主动干预健康风险的"数字守护者"。不同于市…...

颠覆式采集:3步解锁百万级数据价值——TikTokCommentScraper开源方案全解析

颠覆式采集:3步解锁百万级数据价值——TikTokCommentScraper开源方案全解析 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 在数字营销与用户研究领域,数据采集效率直接决定决策速度…...