zoukankan      html  css  js  c++  java
  • WEBUS2.0 In Action

    上一篇: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

  • 相关阅读:
    递归与尾递归总结
    JAVA基础——链表结构之双端链表
    JAVA基础——链表结构之单链表
    JAVA基础——集合Iterator迭代器的实现
    JAVA基础——Date和Calendar类
    JAVA基础——Native关键字
    Java基础——从数组到集合之间关键字的区别!!!!
    JAVA基础——集合类汇总
    Web前端性能优化——提高页面加载速度
    vue 与 angular 的区别
  • 原文地址:https://www.cnblogs.com/iamzyf/p/1093443.html
Copyright © 2011-2022 走看看