Atitit.软件按钮与仪表盘(13)--全文索引操作--db数据库子系统mssql2008

全文索引操作

4.全文索引和like语句比较 1

5.倒排索引 inverted index 1

2.SQL Server 2008全文检索 2

3.Lucene全文检索 3

一般情况,使用SQL Server中的全文索引,经过大体4个步骤: 4

Mssql2008的全文索引操作(attilax验证) 5

查看全文index使用大小 5

查看表行数与体积大小 6

参考 6

4.全文索引和like语句比较

当然是全文索引的执行效率高.

一般全文索引使用的是倒排索引,能够支持多关键字的索引,而LIKE只有前缀匹配时才能使用索引,否则就是全表扫描,效率当然很低

但全文索引存在填充问题,需要在增加内容后进行增量填充,否则检索不到新增的内容的。Sql Server 2008里可采用基于更改跟踪的填充, 速度飞快, 几乎可以认为就是实时增量填充了.

作者::老哇的爪子Attilax艾龙,EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

5.倒排索引 inverted index

为什么Sql server全文检索和Lucune全文检索速度快呢, 因为它和大多数搜索引擎一样, 都使用了倒排索引 inverted index

2.SQL Server 2008全文检索

为了提高效率, 换用sql server的全文检索, 怎么建全文检索就此略去, 不提, 只看查询方法.

例如: select * from table where contains(ProductDesc, ‘*cad*‘)

它查询的效率很高, 支持中文分词(但好不好就另说了), 但缺点竟然是在英文查询上, 如果想模糊查询带cad三个字母的数据, 它只能搜索出以cad为完整单词的数据, 例如: 它能查出abc cad , cad def, 或者cad, 它不能查出autocad这种字母连在一起的数据, 也就是说, sql server的全文检索的英文分词是空格, 要想查连在一起的英文词, 它办不到, 得另寻第三方的全文索引了, ms如果在这里开个可扩展的口子多好, 可惜了.

索引的更新填充问题: 创建好全文检索就自动来一次完全填充, 如果在跟踪更改处选择自动, 全文检索就会采用基于更改跟踪的填充, 原表数据一旦有改动, 就会从后台悄悄地传播过来, 自动的更新全文索引. 具体可参考http://msdn.microsoft.com/zh-cn/library/ms142575.aspx

在更新全文索引之前这段时间, 搜不到新录入但未收入全文索引的数据, 但like可查到. 虽然不是实时的, 但是经过测试, 我发现这个更新速度非常之快, 几乎一改原表, 全文索引就更新了, 所以我觉得可以认为实时的, 估计sqlserver内部应该是用观察者模式实现这个功能的.

另外, contains包含的列都必须来自同一个表, 不能跨表, 例如where contains(a.ProductDesc, b.ProductName, ‘*cad*‘), 这样是不行的.

3.Lucene全文检索

SQL server全文检索不灵了, 只能找第三方的方案了, 首当其冲的就是Lucene了, 但在.net下, Lucene却很不顺当.

NLucene是将 Lucene 从 Java 移植到 .NET 的一个 SourceForge 项目,它从 Lucene 1.2 版本转化而来, 但2002年就停止更新了.

因为 NLucene 项目到2002年就没有再推出新的版本,可Lucene 却一直在发展,于是有人把Lucene 1.3版移植到.NET就成了Lucene .NET,但是Lucene .Net发展到2.0版的时候变成了商业化的产品,脱离了开源项目, 听说现在进了孵化器已停止开发了, 但上官网http://incubator.apache.org/lucene.net/download.html上看, 还仍然在更新中似乎没有停止, 最新开源的版本是2.9.2, 发布日期是2011年5月6日, 他们还在准备2.9.4版.

受到Lucene.Net脱离开源项目的影响,有人为了继续发展开源.Net搜索引擎,于是在Lucene.Net的原有基础上继续发展该项目,但是名字改成了DotLucene以区别于Lucene.Net。但现在打开官网一看, 得, 又停止了. 看来, 只能用Lucene.Net2.0这最后一个开源版本了.

索引的更新填充问题: 也是要隔一段时间更新一次索引, 也是不可实时更新的, 需要定期更新填充才可以, 如果需要频繁更新推荐删除旧的然后重建索引.

一般情况,使用SQL Server中的全文索引,经过大体4个步骤:

  1). 安装full text search全文索引服务;

  2). 为数据表建立full text catalog全文索引目录;

  3). 进行full text catalog的population操作(使全文索引与数据表内容同步);

4). 使用全文索引进行查询。

Mssql2008的全文索引操作(attilax验证)

 1.启动SQL Full-text Filter Daemon Launcher (MSSQLSERVER) 服务

2.建设:::索引表格>>ritkey>>全文index>>创建fulltxt  或者

Db>存储>>全文目录>新建全文目录

3..增添计划>>cpu 空闲的.....

4.   4. 使用索引功能:

select * from mybbs_Table where Contains(col2,‘"windows"‘);

速度还凑火..

查看全文index使用大小

增添状态:::正在处理通知 ..表明目前等候插入....平常状态..

目录大小:::5g

查看表行数与体积大小

表格属性>>存储...>>>35G

参考

Lucene.Net, SQL Server 2008全文检索, Like模糊查询的一点心得 - BobLiu - 博客园.html

使用SQL Server中的全文索引_知识库_博客园.html

时间: 2024-10-15 05:24:59

Atitit.软件按钮与仪表盘(13)--全文索引操作--db数据库子系统mssql2008的相关文章

Atitit.软件button和仪表板(13)--全文索引操作--db数据库子系统mssql2008

全文索引操作 4.全文索引和like语句比較 1 5.倒排索引 inverted index 1 2.SQL Server 2008全文检索 2 3.Lucene全文检索 3 普通情况,使用SQL Server中的全文索引,经过大体4个步骤: 4 Mssql2008的全文索引操作(attilax验证) 5 查看全文index使用大小 5 查看表行数与体积大小 6 參考 6 4.全文索引和like语句比較 当然是全文索引的运行效率高. 一般全文索引使用的是倒排索引,可以支持多keyword的索引,

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax

开源资产管理软件-GLPI(9.13)操作手册

1.简介 GLPI是法语Gestionnaire libre de parc informatique的缩写,是一款历史悠久的资产管理软件: GLPI提供功能全面的IT资源管理接口,可以用来建立数据库全面管理IT的电脑,显示器,服务器,打印机,网络设备,电话,甚至硒鼓和墨盒等.提供Helpdesk用户支持平台:联系人,合同,合作商,以及文档的管理:提供资源预定,知识库的管理等功能." 日常工作中偶然接触到GLPI,通过安装部署,配置LDAP,Fusioninventory,OCS Invento

Atitit.软件仪表盘(4)--db数据库子系统-监测

连接数::: 死锁表列表:死锁基础列表(最近几条记录,时间,sql等) 3.对服务器进行监控,获取CUP,I/O使用情况 4.对数据库进行监控,获取数据库文件所在磁盘剩余空间大小及数据空间和日志空间使用情况 每个表数据以及size情况 6.提供手机短信报警功能,如果服务器或数据库出现异常,程序可以以短信的方式马上通知管理员. 7.所有的数据库异常情况都完整写入日志. 作者::老哇的爪子Attilax艾龙,EMAIL:[email protected] 转载请注明来源: http://blog.c

Atitit.软件仪表盘(4)--db数据库子系统-监測

连接数::: 死锁表列表:死锁基础列表(近期几条记录,时间,sql等) 3.对server进行监控.获取CUP.I/O使用情况 4.对数据库进行监控.获取数据库文件所在磁盘剩余空间大小及数据空间和日志空间使用情况 每一个表数据以及size情况 6.提供手机短信报警功能.假设server或数据库出现异常.程序能够以短信的方式立即通知管理员. 7.全部的数据库异常情况都完整写入日志. 作者::老哇的爪子Attilax艾龙.EMAIL:[email protected] 转载请注明来源: http:/

Atitit. 软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动、停止、重启

Atitit.   软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动.停止.重启 可以通过"netstat -anp" 来查看哪些端口被打开.定位到需要的apache...俄要的是80端口映射的apache Ps -aux查看进程命令行参数...三,字有个httpd,没看见参数....查询myusql,是能看见参数了.... 查看linux版本,cenos....查询httpd.conf文件位置... /etc/httpd

Atitit.软件GUI按钮与仪表盘(01)--js区-----js格式化的使用

Atitit.软件GUI按钮与仪表盘(01)--js区-----js格式化的使用 1. Chrome36( recomm) DEV TOOL>SOURCE> DSWEIHAMYAR  " PRETTY PRINT.."...ICON dakwahaor.. 作者::老哇的爪子Attilax艾龙,EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax 2. APTNA paip.JS格式化时提示不能格式化时的

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax艾龙,E

Atitit.软件控件and仪表盘(23)--多媒体子系统--视频输出切换控制cvbs av s-video Ypbpr pal ntsc

Atitit.软件控件and仪表盘(23)--多媒体子系统--视频输出切换控制cvbs av s-video Ypbpr pal  ntsc 1. CVBS是AV接口 1 2. S-Video S端子 1 3. Ypbpr/YPbPr和YCbCr色差 1 4.  2 5. 参考 2 七大常用视频接口效果对比   HDMI>DVI>VGA>色差>S端子 >av>tv 1. CVBS是AV接口 的视频信号(单根黄色线) CVBS 接口是音频.视频分离的视频接口,三个RCA插