6. 索引操作指南(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(
123 );  // Delete by doc Id


这里实际上并非物理删除, 只是对选定的记录标记为"删除", 因此可以随时撤销删除.


对应的,撤销删除也有两种方式:


writer.Undelete(doc);



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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值