WEBUS2.0 In Action - 索引操作指南(2)
上一篇:WEBUS2.0 In Action - 索引操作指南(1) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(1)
3. 添加、删除、撤销删除和修改文档
在WEBUS中要将文档添加到索引中,有且仅有一种方法:
//Create a document
Document doc = new Document();
doc.Fields.Add(new Field("Title", title, FieldAttributes.Index));
doc.Fields.Add(new Field("Html", html, FieldAttributes.Index | FieldAttributes.Analyse));
doc.Fields.Add(new Field("Url", url, FieldAttributes.Sort));
//Add doc to index
IIndexable writer = new IndexManager();
writer.Add(doc);如果要删除一个文档,可以通过以下两种方式:
writer.Delete(doc); //Delete by doc object
or
writer.Delete(); //Delete by doc Id这里实际上并非物理删除, 只是对选定的记录标记为"删除", 因此可以随时撤销删除.
对应的,撤销删除也有两种方式:
writer.Undelete(doc);
or
writer.Undelete();在WEBUS中不能直接对一个文档的索引进行修改,因此只能够以先删除,再添加的方式来进行操作。
4. 索引各种数据格式
WEBUS内置了丰富的类型处理机制,因此能够直接处理非常多的类型:
包括: string, char, int, uint, double, float, long, short, ushort, object, datetime, timespan, IPAddress等.
这些类型都能够作为值赋给Field的Value属性。
5. 字段属性的作用
Field一共有7个属性,分别是:None、Index、Analyse、Sort、Unstore、Compress和Default。属性之间可以任意搭配,除了Index和Analyse搭配在一起会对WEBUS的处理过程产生影响外,其他的搭配都不会相互影响。Default是一个复合属性,它等于Index | Sort。
具体说明如下:
None:无属性
Index:字段需要编制索引
Analyse:字段在编制索引时需要利用分析器进行分析
Sort:字段需要排序
Unstore:字段需要保存
Compress:字段需要压缩
Default:Index和Sort的组合
6. 调整性能参数
对WEBUS索引器调整性能应该将注意力放在磁盘IO优化上面. 在编制索引的过程中, 索引器引擎会经历Dump, Merge的循环. 因此设置一个优化的Dump和Merge参数将有助于提高索引性能.
Dump - 索引器在编制索引的时候首先会将Doc添加到内存中, 只有达到了DumpDocs的限制时, 才从内存将索引数据回写到磁盘上, 同时还受到DumpSize的限制. 比如DumpDocs = 100, DumpSize = 10, 那么当第100个Doc添加到索引时, Dump过程将开始运行, 它会在内存中检索每个关键词的索引项列表. 如果列表长度超过DumpSize, 则会将这个关键词连同索引项列表一并从内存回写到磁盘上, 并释放这块内存空间.
Merge - 当Merge过程发生时, 索引器会将小的片段尽量合并成大的文件. 具体如何合并就要看MergeFactor是怎么设置的了. 默认值是2, 意思就是当有两个同级别索引时, 就会合并成一个大索引. 比如: 每个索引初始大小10, MergeFactor = 2, 100个文档, 索引及合并过程将是:
10, 10 => 20 -> 20, 10 -> 20, 10, 10 => 20, 20 => 40 -> 40, 10 -> 40, 10, 10 => 40, 20 -> 40, 20, 10 -> 40, 20, 10, 10 => 40, 20, 20 => 40, 40 => 80 -> 80, 10 -> 80, 10, 10 => 80, 20
=> merge
-> indexing
7. 小结
到此为止我详细介绍了WEBUS2.0 的索引操作, 包括:
索引类, 理解索引过程, 添加/删除/撤销和修改, 数据格式, 索引字段属性以及性能调整. 其实在使用的过程中你将会发现更多有意思又容易理解的功能特性, 怎么样? 赶快下载来试试吧?
下载地址: http://www.gdtsearch.com/downloads/WEBUS2.0_latest.zip
相关信息及WEBUS2.0 SDK下载:继续我的代码,分享我的快乐 - WEBUS2.0
WEBUS2.0 In Action - 索引操作指南(2)的更多相关文章
- WEBUS2.0 In Action - 搜索操作指南 - (1)
上一篇:WEBUS2.0 In Action - 索引操作指南(2) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(2) 1. IQueriable中内置的搜索功能 在Webus ...
- WEBUS2.0 In Action - 搜索操作指南 - (3)
上一篇:WEBUS2.0 In Action - 搜索操作指南(2) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(4) 3. 评分机制 (Webus.Search.IHitSc ...
- WEBUS2.0 In Action - 搜索操作指南 - (4)
上一篇:WEBUS2.0 In Action - 搜索操作指南(3) 6. 搜索多个索引 为了提升性能, 我们可以从多个索引同时进行搜索, Webus.Search.MultiSearcher提供了相 ...
- WEBUS2.0 In Action - 搜索操作指南 - (2)
上一篇:WEBUS2.0 In Action - 搜索操作指南(1) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(3) 2. 使用Query Query是所有查询的基类, 它一 ...
- WEBUS2.0 In Action - [源代码] - C#代码搜索器
最近由于工作的需要, 要分析大量C#代码, 在数万个cs文件中搜索特定关键词. 这是一项非常耗时的工作, 用Notepad++要运行接近半个小时. 于是我利用WEBUS2.0 SDK创建了一个代码搜索 ...
- 【转】WF4.0实战系列索引
转自:http://www.cnblogs.com/zhuqil/archive/2010/07/05/wf4-in-action-index.html 此系列的工作流文件案例比较多点,实用性好. W ...
- Struts2.0 去掉action后缀名
刚刚接触Struts2.0,发现默认请求都会带着后缀名:action 就如下图,url地址中会暴露login.action(请原谅struts拼写错误..) 作为一个URL简洁爱(chu)好(nv)者 ...
- ASP.NET MVC 4.0的Action Filter
有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你自定义创建action过滤器.Action过滤器是自定义的Attributes,用来 ...
- [0] CollectionBase与索引符DictionaryBase与迭代器
对于简单数组来说,需要用固定的大小来初始化,才能使用: Animal[] myAnimal=new Animal[10]; myAnimal[0]=new Cow("Ken"); ...
随机推荐
- tar命令--解压缩
tar命令是linux中的一个解压缩的命令.使用tar命令之前首先要搞清楚两个概念:打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 为什 ...
- ExtJs之字段集FieldSet
//Ext.form.FieldSet扩展自Ext.container.Container.其优点就是把相同字段集中在一起,在外面字段外面加了个线"围住"他们. // ...
- Visual Studio 自定义控件不显示在工具箱
工具=>选项=>Windows窗体设计器=>常规=>AutoToolBoxPopulate=>True
- CF 197 DIV2 Xenia and Bit Operations 线段树
线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...
- 机器学习之多变量线性回归(Linear Regression with multiple variables)
1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...
- Good Bye 2015 B. New Year and Old Property 计数问题
B. New Year and Old Property The year 2015 is almost over. Limak is a little polar bear. He has re ...
- lintcode : 跳跃游戏
跳跃游戏 给出一个非负整数数组,你最初定位在数组的第一个位置. 数组中的每个元素代表你在那个位置可以跳跃的最大长度. 判断你是否能到达数组的最后一个位置. 样例 A = [2,3,1,1,4],返回 ...
- libprotobuf ERROR
google/protobuf/wire_format.cc:1059] Encountered string containing invalid UTF-8 data while parsing ...
- WPA/WAP2wifi 密码破解笔记
前言: 相对于前一段时间脆弱的WEP路由器而言,当今的路由器加密方式也大都改变为WPA/WPA2,使得无线路由器的破解难度增加.虽然如此,但还是有很多漏洞层出不穷,如WPS.退一步来说,即使加密算法无 ...
- phpstorm安装,破解及使用
小黑小波比.下载安装phpstorm以及破解 PHPStorm下XDebug配置 phpstorm官方下载地址 PhpStorm 注册码 2.在这输入用户名和注册码,点击OK 破解成功! phpsto ...