全文索引的使用(二)--使用同义词库

SQL Server CONTAINS函数与全文索引实战指南 全文检索是处理非结构化文本搜索的核心技术,其本质是将模糊语义匹配转化为基于倒排索引的高效查找。相比传统LIKE操作的全表扫描,CONTAINS函数依托SQL Server全文索引实现O(log n)级响应,支持词干化、同义词扩展和布尔逻辑,显著提升商品描述、用户评论等长文本场景的查询性能。它依赖全文目录、唯一键索引及主动填充机制,需配合语言配置、停用词管理与变更跟踪策略才能稳定运行。本文聚焦CONTAINS函数在SQL Server环境下的原理剖析、可维护部署与生产级调优,覆盖从零搭建到故障排查的完整链路。 阅读详情

/***************************************************

          作者:herowang(让你望见影子的墙)

    日期:2009.8.11

          注:    转载请保留此信息

    更多内容,请访问我的博客:blog.youkuaiyun.com/herowang

****************************************************/

在上例中,执行

select * from tb

where contains(title,'上海')

结果:

id     title  detail

6     姚明:没把上海当投资项目 乐得生意做了好人当了     “姚蜜”说:不缺广告效应的姚明收购濒临绝境的上海东方篮球俱乐部,说明他是真的想为曾经的母队做点事情。

但是执行:

select * from tb

where contains(title,'上')

结果为空集。

原因:在进行全文索引查询的时候,“上”为简体中文的干扰词,即查询的时候会忽略掉;另外建立全文索引的时候一般会以一个词组作为一个索引项,而不是单个词。

如果还要进行此查询,想查出第一个查询的结果,可以修改全文索引的同义词库。

干扰词与同义词文件存在的路径:

D:/Program Files/Microsoft SQL Server2005/MSSQL.1/MSSQL/FTData,每一个文件名应该很好辨别。

简单介绍下修改同义词库的方法:

1、  使用记事本打开tschs.xml,这是简体中文的同义词库

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">

       <diacritics_sensitive>0</diacritics_sensitive>

        <expansion>

            <sub>Internet Explorer</sub>

            <sub>IE</sub>

            <sub>IE5</sub>

        </expansion>

        <replacement>

            <pat>NT5</pat>

            <pat>W2K</pat>

            <sub>Windows 2000</sub>

        </replacement>

        <expansion>

            <sub>run</sub>

            <sub>jog</sub>

        </expansion>

    </thesaurus>

-->

</XML>


解释:

<replacement>

<pat>NT5</pat>

   <pat>W2K</pat>

   <sub>Windows 2000</sub>

</replacement>

为替代词,即查询W2K时,会自动替换为Windows 2000进行查询

<expansion>

   <sub>run</sub>

   <sub>jog</sub>

</expansion>

为同义词库,即查询run的时候也会查询jog

在本例中添加:

<expansion>

<sub>上</sub>

   <sub>上海</sub>

</expansion>

2、  去掉开始于末尾的注释行:

    <!--  Commented out

-->

3、最终形成的结果为:

<XML ID="Microsoft Search Thesaurus">

    <thesaurus xmlns="x-schema:tsSchema.xml">

       <diacritics_sensitive>0</diacritics_sensitive>

        <expansion>

            <sub>Internet Explorer</sub>

            <sub>IE</sub>

            <sub>IE5</sub>

        </expansion>

        <replacement>

            <pat>NT5</pat>

            <pat>W2K</pat>

            <sub>Windows 2000</sub>

        </replacement>

        <expansion>

            <sub>run</sub>

            <sub>jog</sub>

        </expansion>

       <expansion>

            <sub>上</sub>

            <sub>上海</sub>

        </expansion>

    </thesaurus>

</XML>


 

4、  执行查询语句:

select * from tb

where contains(title,'formsof(thesaurus,上)')

即可看到查询结果与contains(title,'上海')相同

 

本地部署OpenClaw智能体框架:从模型接入到技能配置的完整指南 AI Agent正从云端聊天工具走向本地生产力平台,而智能体框架作为连接模型、工具与业务场景的核心运行时,其设计理念与落地方式愈发关键。一个成熟的本地智能体框架需要解决模型后端自由切换、工作区文件操作、外部渠道接入等基础问题,让AI不仅能理解指令,更能执行真实任务。OpenClaw作为开源的本地方案,通过定义清晰的模块分层——模型提供方、工作区、技能体系与网关——实现了从对话到行动的闭环。在实际部署时,用户可选择便携包、脚本或包管理器安装,并灵活接入云端API、本地Ollama或NVIDIA NIM等推理服 阅读详情

相关推荐

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 343

全文检索中近义词、关联词的解决方案

         一直想找到一个好的同义词解决方案,在百度和google查找,大家对于这个问题都只是寥寥数语,不愿讲清,我在javaeye搜此类信息也求不到,后来发了个提问贴也只有浏览数而无回复,不知道这是什么原因,无奈之下我只有自己研究。          因为没有其它的解决方案可以借鉴,以下纯为我个人的见解。   我认为所谓近义词、关联词检索不外乎以下三种形式: 1.类似google sugg...

shingo7的专栏 1360

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1390

全文索引同义词搜索没作用的问题

--显示版本信息SELECT @@VERSION;GOCREATE TABLE FullText_Test(  ID int IDENTITY(1,1),  DATA nvarchar(max),  --如果这里使用varchar(max),下面的插入也不带N,那CONTAINS得不到任何记录  CONSTRAINT PK_ID_FullText_Test       PRIMARY KEY(

2209

售货机非现金支付开发指南:MDB协议下VPOS刷卡器的那些坑

本文深入探讨了MDB协议下非现金支付设备的开发实践,重点解析了NAYAX VPOS刷卡器的集成难点与解决方案。从RS232通信参数配置到Always idle功能实现,提供了一套完整的售货机支付系统开发指南,帮助开发者规避常见陷阱,提升设备兼容性与交易稳定性。

weixin_29258297的博客 133

Xilinx Blockset Counter计数器模块使用及参数配置

本文详细介绍了Simulink中Xilinx Blockset库Counter模块的使用以及参数说明。

白码王子小张的博客 1093

同义词的使用

之前一个blog,说是两个用户下的数据希望同步,可以做DBLINK或赋权,这两个做法,都需要在已经写好的大量存储过程中进行修改,比如加@dblink,“用户.”         现在还有一个同义词的思路,实际情况是同一个实例,两个用户A、B,里面的存储过程、表、视图全部一样,但是应用层方面,存储过程里两者有交叉作用的表,即A用户的存储过程作用于a、b、c、d四个表,B用户的存储过程作用于

Cindy(Berry)的专栏 745

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 120

全文索引的使用(二)--使用同义词库 (转)

/*************************************************** 作者:herowang(让你望见影子的墙) 日期:2009.8.11 注: 转载请保留此信息 更多内容,请访问我的博客:blog.youkuaiyun.com/herowang ***********************...

diaocu2781的博客 275

uniapp自定义tabbar闪屏?3步搞定原生tabbar隐藏+自定义占位(附完整代码)

本文针对UniApp开发中自定义TabBar切换页面闪烁的痛点,提供了一套根治方案。通过隐藏原生TabBar并利用自定义组件进行视觉占位,巧妙结合原生切换的无闪烁优势与自定义设计的灵活性。文章详细解析了闪屏根源,并附上完整的page.json配置与代码实现,帮助开发者彻底解决此问题,提升小程序应用质感。

postgres8guard的博客 1528

MongoDB启动失败(service mongod start):Failed to unlink socket file /tmp/mongodb-27017.sock Unknown error

错误日志(/var/log/mongodb/mongo.log): 2019-09-16T06:00:00.251+0000 I CONTROL [main] ***** SERVER RESTARTED ***** 2019-09-16T06:00:00.253+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-e...

deantzzz的博客 1837

sqlserver 2005 关于全文索引中使用同义词库

同义词库      0                    @keyword1            @keyword2                            每日任务是什么?            meirirenwu             select * from freetexttable(tablename,column1,@keyword1)

rucypli的专栏 1214

我正用AI Agent重构传统GIS 核心功能,说大白话做空间分析

GeoAI-UP项目通过AI Agent技术实现自然语言驱动的空间分析,核心创新包括: 意图识别层:通过LLM理解用户需求,自动拆解为可执行目标 智能任务规划:动态生成分析流程,处理复杂依赖关系 统一算子架构:采用标准化接口封装200+空间分析功能 可视化工作流。

专注GIS软件开发。 495

在全文索引中同义词的使用

<br />在全文索引中同义词的使用 <br />/*建立测试环境<br />  WINXP(SP3)+SQL SERVER2005(SP3)*/<br />if object_id('tb') is not null<br />   drop table tb<br />go<br />create table tb<br />(id int identity(1,1),<br /> title varchar(200), <br /> detail varchar(1000),<br /> constr

永生天地 1879

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SQL Server 使用全文索引进行页面搜索

标签:SQL SERVER/MSSQL SERVER/数据库/DBA/全文索引 概述   全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。生成全文索引的过程不同于生成其他类型的索引。全文引擎并非基于

沉寂的石头 2610

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精华贴子整理之全文索引

全文索引的使用方法(一) 收藏  /***************************************************          作者:herowang(让你望见影子的墙)    日期:2009.8.11          注:    转载请保留此信息    更多内容,请访问我的博客:blog.youkuaiyun.com/herowang****************************************************/view plaincopy to clipbo

金 色 的 草 棚 803

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

全文索引的使用(二)

<br />http://blog.youkuaiyun.com/HEROWANG/archive/2009/08/11/4436623.aspx<br /> <br />/***************************************************<br /> <br />          作者:herowang(让你望见影子的墙)<br /> <br />    日期:2009.8.11<br /> <br />          注:    转载请保留此信息<br /> <br /> 

月亮宝石的天空 492

SQL Server 全文索引

CONTAINS (Transact-SQL) 索引的EF Core * * * ● 全文索引是针对数据表,只能对表创建全文索引,不能对数据库创建全文索引。 ● 每个数据库可以不包含全文目录或包含多个全文目录,一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。 ● 一个数据表只能创建一个全文索引,一个全文索引可以包含多个字段。 ● 创建全文索引的表必须要有一个唯一的非...

KingCruel的专栏 703

SQL Server 全文索引介绍(转载)

概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。生成全文索引的过程不同于生成其他类型的索引。全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒...

327

[转]关于SQLSERVER的全文目录跟全文索引的区别

先介绍一下SQLSERVER中的存储类对象,哈哈,先介绍一下概念嘛,让新手老手都有一个认知 SQLSERVER Management Studio将【全文目录】、【分区函数】以及【分区方案】节点纳入其【对象资源管理器】的【存储】节点之中, 如下图所示: 分享到 正文来了!哈哈,有请主角:全文目录 全文目录 数据...

admi88888888的博客 212

在全文索引中同义词的使用(SQL SERVER 2005)

在全文索引中同义词的使用 /*建立测试环境 WINXP(SP3)+SQL SERVER2005(SP3)*/ if object_id('tb') is not null drop table tb go create table tb (id int identity(1,1), title varchar(200), detail varchar(1000...

weixin_30480651的博客 170
上一篇: 全文索引的使用方法(一)
下一篇: 一个字节引发的存储空间问题
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值