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的索引,而LIKE仅仅有前缀匹配时才干使用索引,否则就是全表扫描,效率当然非常低

但全文索引存在填充问题,须要在添加内容后进行增量填充,否则检索不到新增的内容的。

Sql Server 2008里可採用基于更改跟踪的填充, 速度飞快, 差点儿能够觉得就是实时增量填充了.

作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com

转载请注明来源: 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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

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

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

    Atitit.软件按钮与仪表盘(13)--全文索引操作--db数据库子系统mssql2008 全文索引操作 4.全文索引和like语句比较 1 5.倒排索引 inverted index 1 2.SQ ...

  2. Atitit.软件GUIbutton和仪表板(01)--警报系统--

    Atitit.软件GUIbutton和仪表板(01)--警报系统-- 1. 温度报警防区(鲁大师,360taskman) 1 2. os-区-----cpu_mem_io资源占用监測 1 3. Vm区 ...

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

    Atitit.软件仪表盘(4)--db数据库子系统-监测 连接数::: 死锁表列表:死锁基础列表(最近几条记录,时间,sql等) 3.对服务器进行监控,获取CUP,I/O使用情况   4.对数据库进行 ...

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

    Atitit.软件仪表盘(4)--db数据库子系统-监測 连接数::: 死锁表列表:死锁基础列表(近期几条记录,时间,sql等) 3.对server进行监控.获取CUP.I/O使用情况   4.对数据 ...

  5. Atitit.软件仪表盘(0)--软件的子系统体系说明

    Atitit.软件仪表盘(0)--软件的子系统体系说明 1. 温度检测报警子系统 2. Os子系统 3. Vm子系统 4. Platform,业务系统子系统 5. Db数据库子系统 6. 通讯子系统 ...

  6. Atitit.软件的仪表板(8)--os子系统--监控资源使用情况

    Atitit.软件的仪表板(8)--os系统--资源占用监測 CPU使用 内存使用 磁盘队列 任务管理器 网络速度 插件列表( 资源管理器插件,浏览器插件,360optim) 启动项管理  (350) ...

  7. atitit.软件开发概念--过滤和投影 数据操作

    atitit.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...

  8. Atitit.软件开发提升稳定性总结

    Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 ...

  9. atitit.软件设计模式大的总结attialx总结

    atitit.软件设计模式大的总结attialx总结 1. 设计模式的历史3 2. 设计模式的数量(253个)3 3. 设计模式的结构4 3.1. 应用场景and条件Context4 3.2. Pro ...

随机推荐

  1. 23种设计模式——Prototype模式

    Prototype模式是提供自我复制的功能.包括浅拷贝和深拷贝. 一.Prototype模式的用途 场景1:游戏场景中有很多类似的敌人,它们的技能都一样,但是随着敌人出现的位置和不同,它们的能力也不太 ...

  2. 一个自己主动依据xcode中的objective-c代码生成类关系图的神器

    https://github.com/kimsungwhee/KSHObjcUML 安装方法: 1.下载项目 2.执行 3.会又一次开启一个新的xcode 4.选择一个项目,点击 Objc-UML 会 ...

  3. 微信测试号开发之四 获取access_token和jsapi_ticket

    原文:https://blog.csdn.net/qq_37936542/article/details/78549233 access_token:公众号的全局唯一接口调用凭据,公众号调用各接口时都 ...

  4. USB 3.0规范中译本 第7章 链路层

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 链路层具有维持链路连接性的责任,从而确保在两个链路伙伴之间的成功数据传输.基于包(packets)和链路命令 ...

  5. java中的subString具体解释及应用

    substring(參数)是java中截取字符串的一个方法 有两种传參方式 一种是public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个 ...

  6. arm cpu的架构及分类说明

    今天在编译mplayer for mx27ads的时候, 碰到了armv5te与armv6优化的问题. 默认的交叉编译器支持armv5te也支持armv6,就默认使用了mplayer中mpeg4的ar ...

  7. 检测dll是32/64位?(直接读dll文件包含的某几个字节进行判断)

    检查dll是32位还是64位? #include "stdafx.h" #include <Windows.h> int _tmain(int argc, _TCHAR ...

  8. 【前端统计图】echarts实现简单柱状图

    图片.png <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  9. [Vue] Create Filters in Vue.js

    Just like in the command line, you can pipe a property through a filter to get a desired result. You ...

  10. [Angular Form] ngModel and ngModelChange

    When using Radio button for Tamplate driven form, we want to change to the value change and preform ...