放逐忧伤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

代码如下: 

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的字段,更新时是添加一条新数据,难道是删除时没有找到然后添加?
posted on 2011-07-20 11:18  放逐忧伤  阅读(298)  评论(0编辑  收藏  举报