Xunsearch:实现拼音搜索和中文分词功能

首先我们需要安装xunsearch扩展库,参考

1、设置分词器和拼音搜索功能

在创建Xunsearch对象后,可以设置相应的分词器和拼音搜索功能。以下代码示例演示了如何设置分词器和拼音搜索功能:

$index = $xunsearch->index;
$index->setTokenizer(new XSTokenizerScws());
$index->setSearch('拼音', true);

其中,XSTokenizerScws()为Xunsearch自带的中文分词器,可以根据需要选择其他分词器。setSearch()方法用于开启拼音搜索功能,第二个参数为true表示开启。在设置完分词器和拼音搜索功能后,需要执行一次重建索引操作,以便使设置生效:

$index->beginRebuild();
$index->endRebuild();
$index->flushIndex()

2、执行拼音搜索

在设置完分词器和拼音搜索功能后,可以使用拼音进行搜索。以下代码示例演示了如何使用拼音搜索相关内容:

$search = $xunsearch->search;
$search->setFuzzy(true); // 设置模糊搜索
$query = 'pinyin:pinyin'; // 输入拼音进行搜索
$result = $search->setQuery($query)->search();
foreach ($result as $item) {echo $item->title;
}

以上代码中,首先使用setFuzzy()方法设置模糊搜索,可以进行模糊匹配。然后,使用setQuery()方法设置查询语句,pinyin表示拼音

我们在执行查询的时候也需要对输入条件进行分词


1、创建一个分词器对象,用于执行中文分词操作

$tokenizer = new XSTokenizerScws();

其中,XSTokenizerScws()为Xunsearch自带的中文分词器,可以根据需要选择其他分词器。

2、执行中文分词

$where = '';
$text = '这是一段谢写';
$words = $tokenizer->getTokens($text);
foreach ($words as $key => $val) {if ($key == 0) {$where = $f . ':(' . $val . ')';} else {$where .= ' OR ' . $f . ':(' . $val . ')';}
}echo '<br/>$where :' . $where ;

以上代码中,首先使用getTokens()方法对文本进行分词,将分词结果保存在$words变量中。然后,通过遍历$words数组,可以输出分词结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决SSH客户端远程连接CentOS7虚拟机时加载过慢问题

1、编辑 /etc/ssh/sshd_config 文件&#xff0c;将 useDNS 中的 yes 改为 no &#xff0c;关闭UseDNS加速&#xff1a; vi /etc/ssh/sshd_config2、重启ssh服务: systemctl restart sshd

Golang 创建第一个web项目(Gin + Gorm)

1. 写这篇博客的由来&#xff1a; 当你想使用最快的框架创建项目的时候是不是有点束手无策&#xff1f; 当你想配置数据库写 SQL 甚至不知道如何写&#xff0c;文件夹都不知道建在哪里&#xff1f; &#x1f604;因为Golang 目前并没有 JAVA 那种硬性规范&#xff0c;但是…

kafka-主题创建(主题操作的命令)

文章目录 1、topic主题操作的命令1.1、创建一个3分区1副本的主题1.1.1、获取 kafka-topics.sh 的帮助信息1.1.2、副本因子设置不能超过集群中broker的数量1.1.3、创建一个3分区1副本的主题1.1.4、查看所有主题1.1.5、查看主题详细描述 1、topic主题操作的命令 kafka发送消息会存…

巨额分红与大幅下调募资金额,小方制药注册生效半年后仍无进展

《港湾商业观察》施子夫 2022年7月1日&#xff0c;上海小方制药股份有限公司&#xff08;以下简称&#xff0c;小方制药&#xff09;递表上交所板&#xff0c;2023年9月1日公司提交了注册申请&#xff0c;并于同年12月19日获得生效。 离挂牌上市仅有一步之遥的小方制药注册生…

flutter开发实战-外接纹理texture处理图片展示

flutter开发实战-外接纹理处理图片展示 在Flutter中&#xff0c;如果你想要创建一个外接纹理的widget&#xff0c;你可以使用Texture widget。Texture widget用于显示视频或者画布&#xff08;canvas&#xff09;的内容。该组件只有唯一入参textureId 通过外接纹理的方式&…

迁移基于MicroBlaze处理器的设计

迁移基于MicroBlaze处理器的设计 生成系统基础设施&#xff08;MicroBlaze、AXI_Interconnect&#xff0c; Clk_Wiz、Proc_Sys_Reset&#xff09; 生成系统基础设施&#xff08;MicroBlaze、AXI_Interconnect、Clk_Wiz和 Proc_Sys_Reset&#xff09;&#xff1a; 1.使用所需的板…

Effective C++ 不要滥用宏

1.用宏的坏处 #define PI 3.14 用宏定义PI 所有遇到PPI的都替换为3.14 若是发生错误 这就是3.14 看不到这个PPI 用const 代替 如 const double Pi 3.14; 2.const替换宏 宏是不可修改的 const char * Text "hello"; 这只代表 "hello"不可改变 可…

素数环_回溯法

课本例题&#xff1a; 素数环是一个计算机程序问题&#xff0c;指的是将从1到n这n个整数围成一个圆环&#xff0c;若其中任意2个相邻的数字相加&#xff0c;结果均为素数&#xff0c;那么这个环就成为素数环。 #include <iostream>#include <cmath>using namespa…

2024年【危险化学品经营单位安全管理人员】考试报名及危险化学品经营单位安全管理人员找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新危险化学品经营单位安全管理人员找解析题目及答案&#xff01;多做几遍&#xff0c;其实通过危险化学品经营单位安全管…

芋道源码 / yudao-cloud:前端技术架构探索与实践

摘要&#xff1a; 随着企业信息化建设的深入&#xff0c;后台管理系统在企业运营中扮演着至关重要的角色。本文将以芋道源码的yudao-cloud项目为例&#xff0c;深入探讨其前端技术架构的设计思路、关键技术与实现细节&#xff0c;并分享在开发过程中遇到的挑战与解决方案。 一、…

TCP UDP 传输协议 Acl 访问控制列表

TCP的应用 端口 21 FTP 22 SSH 25 SMTP 53 DNS 80 HTTP 443 HTTPS UDP 的应用 端口 69 TFTP 53 DNS 123 NTP Acl 访问控制列表 路由器ACL配置&#xff1a;[Huawei]acl 2000 //创建acl 列表号是2000[Huawei-acl-basic-2000]rule deny source 192…

列表、元组、字典和集合的区别

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在前面介绍了序列中的列表、元组、字典和集合的应用&#xff0c;下面通过表2对这几个数据序列进行比较。 表2 列表、元组、字典和集合的区别 数 据…

消除控制台打印com.apple.commcenter.coretelephony.xpc

控制台输出&#xff1a; [Client] Synchronous remote object proxy returned error: Error DomainNSCocoaErrorDomain Code4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo{NSDebugDescriptionThe conne…

MyBatis 面试题

一、什么是 Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。 …

【设计模式】适配器

来源&#xff1a;爱编程的大丙 STL标准模板库有六大组件&#xff0c;其中之一就是适配器 六大组件分别是&#xff1a;容器、算法、迭代器、仿函数、空间适配器 适配器可以分为&#xff1a;容器适配器、函数适配器、迭代器适配器 适配器&#xff0c;相当于沟通的桥梁。将一个…

半导体测试基础 - 功能测试

功能测试(Functional Test)主要是验证逻辑功能,是运用测试矢量和测试命令来进行的一种测试,相比于纯 DC 测试而言,组合步骤相对复杂且耦合度高。 在功能测试阶段时,测试系统会以周期为单位,将测试矢量输入 DUT,提供预测的结果并与输出的数据相比较,如果实际的结果与测…

Codeforces Global Round 17 C. Keshi Is Throwing a Party 二分查找

Keshi Is Throwing a Party 题目描述 Keshi is throwing a party and he wants everybody in the party to be happy. He has n n n friends. His i i i-th friend has i i i dollars. If you invite the i i i-th friend to the party, he will be happy only if at m…

凤香的“蜜”密

执笔 | 文 清 编辑 | 古利特 “遇水则漏&#xff0c;遇酒生香”。酒海&#xff0c;一种大型盛酒容器&#xff0c;因盛酒量以“吨”计算&#xff0c;故称“海”&#xff0c;传于唐宋&#xff0c;兴盛于明清&#xff0c;距今有1400多年的历史。文人墨客笔下&#xff0c;也多有…

C++重点基础知识汇总大全

文章目录 一些基础知识点指针和引用 一些基础知识点 1、十进制的数字比较长的时候&#xff0c;可以加方便阅读到底是几位&#xff0c;输出的时候跟不加是一样的效果 // 十进制可以加 cout << 13890324 << endl; // 13890324 // 二进制前加0b cout << 0b111…

redis集群数据迁移

redis槽位 ​ redis集群搭建完后会自动在redis集群中内置16384个哈希槽(至于为啥是16384个,有兴趣的读者可进行深究)。当客户端向redis集群中插入数据时(key-value),redis会先对key使用crc16算法算出一个结果值,然后用此结果值对16384进行求余,此余数会对应到16384中的…