• Lucene.NET更新索引


    接上篇《Lucene.NET入门实例》,在创建索引之后,经常会更新数据库中的数据,这时需要更新索引,利用 indexwriter的UpdateDocument方法来实现。

    代码如下: 

    Term term = new Term("id", "17819");
    IndexWriter writer = new IndexWriter("D:/index/", new ChineseAnalyzer(), false);
    Document doc = new Document();
    doc.Add(new Field("id", "17819", Field.Store.YES, Field.Index.UN_TOKENIZED));//此处应是Field.Index.UN_TOKENIZED而不是Field.Index.TOKENIZED,如果是后者,执行UpdateDocument方法会添加一条新索引数据
    doc.Add(new Field("title", "用户控制123232", Field.Store.YES, Field.Index.TOKENIZED));
    doc.Add(new Field("summary", "23用户控制232221", Field.Store.YES, Field.Index.TOKENIZED));
    writer.UpdateDocument(term, doc);

    writer.Close(); 

    从网上搜了一下TOKENIZED和UN_TOKENIZED:如果使用Field.Index.TOKENIZED,值就会被分析,让Lucene可以更充分地利用功能强大的全文索引和搜索特性。正如我们会看到的那样,缺点在于,无法按标记化(tokenized)的字段对结果进行排序。如果想为字段建立索引,而不需要先进行分析,那么Field.Index.UN_TOKENIZED很有用 。(没有搞明白,为什么TOKENIZED的字段,更新时是添加一条新数据,难道是删除时没有找到然后添加? 

  • 相关阅读:
    Python3学习笔记24-操作文件和目录
    Python3学习笔记23-StringIO和BytesIO
    [Uva10934]Dropping water balloons
    [Uva10641]Barisal Stadium(区间dp)
    [hdu4960]Another OCD Patient(区间dp)
    [cf687c]The Values You Can Make(01背包变形)
    [Gym 101334E]Exploring Pyramids(区间dp)
    [bzoj4806]炮
    [hdu4662]MU Puzzle(找规律)
    [Uva12260]Free Goodies(dp+贪心)
  • 原文地址:https://www.cnblogs.com/dlz1123/p/1964927.html
Copyright © 2020-2023  润新知