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

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔,我们在集成xunsearch的时候就会比较简单,后面我们在介绍其他的接入方式;

首先我们进入到宝塔管理后台:【软件商店】-【输入xun】-【点击xunsearch】直接安装即可

安装成功之后,会自动在www/server中创建xunsearch 

我们将 【sdk】 -【php】 复制到你的站点extend下

然后再站点根目录下创建test.php进行测试,在进行测试前我们需要创建配置【非常关键】

        a):如果需要做精确搜索建议对字段设定index=self,tokenizer = full,不然xunsearch会对字段做分词处理;

        b):数字区间搜索需设定 type=numerice;

        c):如需对字段进行模糊匹配tokenizer 可不设定,默认做scws分词,如字段存储的值为“,6,7,8,”想搜索包含6或8的数据;

        d):配置文件必须包含一个type=id的主键字段

接下来我们就开始配置:

如果我们不知道如何手写,官方也提供了生成ini的工具,具体可以参考手册

项目配置详解 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎

ini文件设计辅助工具 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎

demo.ini【xunsearch/app/demo.ini


project.name = demo
project.default_charset = utf-8
server.index = 8383
server.search = 8384[pid]
type = id[subject]
type = title[message]
type = body[chrono]
type = numeric

test.php 【站点根目录


<?php
// // 确保Xunsearch扩展已经安装并启用require_once 'extend/xunsearch/lib/XS.php';// // 初始化Xunsearch的项目
$xs = new XS('demo'); $data = array('pid' => 234, // 此字段为主键,必须指定'subject' => '5554444','message' => '测试文档的内容部分','chrono' => time(),
);// 创建文档对象$doc = new XSDocument;
$doc->setFields($data);
$index = $xs->index;
// 添加到索引数据库中
$index->add($doc);
$index->flushIndex();
echo "<br>";
echo "数据已成功添加到Xunsearch索引" . "\n";
$search = $xs->search;$result =  $xs->search->setQuery($where)//->setSort('sku_id','asc') #按索引排序->setDocOrder(true) #按添加索引排序(升序)->setLimit($limit)->search();
try {// 遍历结果foreach ($result as $document) {echo "<br>";// 打印文档的某些字段echo $document->pid . ' - ' . $document->subject .  ' - ' .  $document->message ."\n";}} catch (\XSException $e) {$result = $e->getMessage();}// 其他操作,如更新索引、优化索引等
?>

当然如果想针对查询词进行分词可以对其使用 XSTokenizerScws  

测试结果:

如有疑问可以致邮 dingcho@kingbal.com 我们,一起探讨 

测试成功,说明集成成功,我们可以执行命令自动生成前端搜索页面骨架

/www/wwwroot/www.tst.com/extend/xunsearch/util/SearchSkel.php demo /www/wwwroot/www.tst.com/xunsearch

生成完毕,访问页面即可 

参考生成搜索代码文档:SearchSkel 生成搜索代码 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎

相关文章:

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔&#xff0c;我们在集成xunsearch的时候就会比较简单&#xff0c;后面我们在介绍其他的接入方式&#xff1b; 首先我们进入到宝塔管理后台&#xff1a;【软件商店】-【输入xun】-【点击xunsearch】直接安装即可 安装成功之后&#xff0c;会自动在www/server中创…...

ThreadLocal详解,与 HashMap 对比

ThreadLocal原理&#xff0c;使用注意事项&#xff0c;解决哈希冲突方式->和HashMap对比 ThreadLocal 原理&#xff1a; ThreadLocal 是 Java 中的一个线程级别的变量&#xff0c;它允许您在不同线程之间存储和访问相同变量的不同副本&#xff0c;每个线程都拥有自己的副本&…...

flask流式接口

一、接口封装 from flask import Flask, request, Response, stream_with_context app Flask(__name__) app.logger.disabled Truedef chat_stream_(prompt):for new_text in [1,2,3]:yield new_textapp.route(/chat_stream, methods[POST]) def chat_stream():prompt requ…...

MatLab命令行常用命令记录

文章目录 MatLab常用命令行MatLab常用按键标点说明 MatLab常用命令行 Matlab常用命令用来管理目录、命令、函数、变量、工作区、文件及窗口。常用命令如下表 命令作用cd显示或改变当前文件夹load加载指定文件的变量dir显示当前文件夹或指定目录下的文件diary日志文件命令type…...

Linux —— MySQL操作(1)

一、用户与权限管理 1.1 创建与赋予权限 create user peter% identified by 123465 # 创建用户 peter&#xff0c;# %&#xff1a;允许所有用户登录这个用户访问数据库 刚创建的新用户是什么权限都没有&#xff0c;需要赋予权限 grant select on mysql.* to peter%; # 赋予…...

TCP四次握手与http协议版本区别

TCP四次挥手(图解)-为何要四次挥手 当客户端和服务器通过三次握手建立了TCP连接以后&#xff0c;当数据传送完毕&#xff0c;肯定是要断开TCP连接的啊。那 对于TCP的断开连接&#xff0c;这里就有了神秘的“四次挥手”。 第一次挥手&#xff1a;主机1&#xff08;可以使客户端…...

【机器学习】洞悉数据奥秘:决策树算法在机器学习中的魅力

在机器学习的分类和回归问题中&#xff0c;决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现&#xff0c;以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 &#x1f680;时空传送门 &#x…...

redis(17):什么是布隆过滤器?如何实现布隆过滤器?

1 布隆过滤器介绍 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示: 根据 key 值计算出它的存储位置,然后将此位置标…...

STM32自己从零开始实操03:输出部分原理图

一、继电器电路 1.1指路 延续使用 JZC-33F-012-ZS3 继电器&#xff0c;设计出以小电流撬动大电流的继电器电路。 &#xff08;提示&#xff09;电路需要包含&#xff1a;三极管开关电路、续流二极管、滤波电容、指示灯、输出部分。 1.2数据手册重要信息提炼 联系排列&…...

Unity中将图片做成Prefab的步骤

Unity中将图片做成Prefab的步骤 在Unity中&#xff0c;将一张图片做成Prefab是一个常见的操作。Prefab是Unity中的一种资源类型&#xff0c;可以让你预先定义一个游戏对象&#xff0c;然后在场景中多次实例化它。以下是详细的步骤&#xff1a; 步骤一&#xff1a;准备图片资源…...

Web前端三大主流框架:React、Vue和Angular

在当前的Web开发领域&#xff0c;前端框架的选择对于项目的成功至关重要。作为一名资深的IT技术员&#xff0c;我对前端技术的发展和行业趋势保持着持续的关注。本文将介绍当前Web前端三大主流框架&#xff1a;React、Vue和Angular&#xff0c;并分析它们各自的优势。 React&a…...

安全风险 - 检测设备是否为模拟器

在很多安全机构的检测中&#xff0c;关于模拟器的运行环境一般也会做监听处理&#xff0c;有的可能允许执行但是会提示用户&#xff0c;有的可能直接禁止在模拟器上运行我方APP 如何判断当前 app 是运行在Android真机&#xff0c;还是运行在模拟器? 可能做 Framework 的朋友思…...

maven的下载以及配置的详细教程(附网盘下载地址)

文章目录 下载配置IDEA内部使用配置 下载 1.百度网盘下载 链接: https://pan.baidu.com/s/1LD9wOMFalLL49XUscU4qnQ?pwd1234 提取码: 1234 2.解压即可 配置 1.打开安装文件下conf下的settings.xml文件&#xff0c;我的如下 2.修改配置信息&#xff08;目的是为了修改本地…...

Unity3D 主城角色动画控制与消息触发详解

前言 在游戏开发中&#xff0c;角色动画控制和消息触发是非常重要的一部分&#xff0c;它可以让游戏更加生动和互动。本文将详细介绍如何在Unity3D中实现主城角色动画控制与消息触发。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家可以点击进来一起交流一下开…...

【Endnote】如何在word界面加载Endnote

如何在word界面加载Endnote 方法1&#xff1a;方法2&#xff1a;从word入手方法3&#xff1a;从CWYW入手参考 已下载EndNote,但Word中没有显示EndNote&#xff0c;应如何加载显示呢&#xff1f; 方法1&#xff1a; 使用EndNote的Configure EndNote.exe 。 具体步骤为&#x…...

优化CPU占用率及内存占用2

在标准化无线通信板时&#xff0c;关注过程序占用ram的问题&#xff0c;当时 发现每一个线程都会分配8M栈空间&#xff0c;这次换rk3568后&#xff0c;偶尔看了下RAM占用&#xff0c;吓了一跳&#xff0c;不但每个线程有8M栈空间&#xff0c;几乎每个线程都占用了64MB的一个RAM…...

C语言(字符和字符串函数)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…...

【数据结构与算法 | 栈篇】力扣20,150

1. 力扣20 : 有效的符号 (1). 题 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个…...

node依赖安装的bug汇总

1.npm仓库 首先要获取npm仓库的地址&#xff1a; registryhttp://11.11.111.1:1111/abcdefg/adsfadsf 类似这种的地址 然后设置npm仓库&#xff1a; npm config set registryhttp://11.11.111.1:1111/abcdefg/adsfadsf (地址要带等号) 接着安装依赖&#xff1a; npm i…...

Python中的 Lambda 函数

大家好&#xff0c;在 Python 编程的世界里&#xff0c;有一种功能强大却不常被提及的工具&#xff0c;它就是 Lambda 函数。这种匿名函数在 Python 中拥有着令人惊叹的灵活性和简洁性&#xff0c;却常常被许多开发者忽视或者只是将其当作一种附加功能。Lambda 函数的引入&…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

Axure零基础跟我学:展开与收回

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...