6. 索引操作指南(2)
来源:互联网 发布:无人驾驶云计算 编辑:程序博客网 时间:2024/06/05 22:38
上一篇:WEBUS2.0 In Action - 索引操作指南(1) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(1)
3. 添加、删除、撤销删除和修改文档
在WEBUS中要将文档添加到索引中,有且仅有一种方法:
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);
如果要删除一个文档,可以通过以下两种方式:
or
writer.Delete(123); //Delete by doc Id
这里实际上并非物理删除, 只是对选定的记录标记为"删除", 因此可以随时撤销删除.
对应的,撤销删除也有两种方式:
or
writer.Undelete(123);
在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
- 6. 索引操作指南(2)
- WEBUS2.0 In Action - 索引操作指南(2)
- 5. 索引操作指南(1)
- WEBUS2.0 In Action - 索引操作指南(1)
- Git操作指南(2)
- 火狐插件: Vimperator操作指南(2)
- Sqlite数据库操作指南(2)
- mongodb指南(十八) - developer zone - 索引(二)_id索引、复合索引、稀疏索引、数组索引、唯一索引
- 索引器(C# 编程指南)
- 使用索引器(C# 编程指南)
- VB 6 应用参考指南(索引)
- 索引器(C# 编程指南)
- 索引器(C# 编程指南)
- (二)mysql索引操作
- 8. 搜索操作指南 (2)
- CString 操作指南(ZZ)
- CString 操作指南(ZZ)
- SmarGit 操作指南(一)
- 3. 解析索引文件结构(1)
- 4. 解析索引文件结构(2)
- 5. 索引操作指南(1)
- 20130906组队赛HDU4236-HDU4237-HDU4239-HDU4242-HDU4243
- 进度条对话框ProgressDialog
- 6. 索引操作指南(2)
- HTTP 返回状态值详解
- WEBUS2.0 In Action - [源代码] - C#代码搜索器
- Android系统级电源管理
- 7. 搜索操作指南 (1)
- 8. 搜索操作指南 (2)
- 9. 搜索操作指南 (3)
- [原创] - C#编程大幅提高OUTLOOK的邮件搜索能力!
- 10. 搜索操作指南 (4)