lucene简明学习笔记

全文索引工具中,都是由这样三部分组成:

1,索引部分 2,分词部分 3,搜索部分

创建索引过程:1创建directory2创建writer(索引),3创建文档并且添加索引 4查询索引的基本信息 删除和更新索引。

模糊查询:

Query query=new FuzzyQuery(new Term(name,make));

public void index(){

 

//创建directory

//创建indexwriter

//创建document对象

//为document添加field

//通过indexwriter添加文档到索引中

}

存储域选项:

Field.Store.Yes /No

设置为Yes表示把这个域的内容完全存储到文件中,方便进行文本的还原 doc.get

设置为No表示把这个域的内容不存储到文件中,但可以被索引,此时内容无法被还原。

摘要需要存储。

索引域选项:

Field.Index

.ANALYZED:进行分词和索引,适用于标题,内容等

.NOT_ANALYZED 进行索引,但是不进行分词,如身份证号码,姓名,id等,适用于精确索引

.ANALYZED_NOT_NORMS:进行分词但是不存储norms信息,这个norms中包括了创建索引的时间和权值等信息(评分,显示的排序信息)

.NOT_NORMS既不进行分词,也不存储norms信息(很少用)

.NO不进行索引。

最佳实践:  NOT_ANALYZED_NOT_NORMS  YES 标示符(主键,文件名),电话号码, 身份证号码,姓名,日期

ANALYZED                     YES  文档标题和摘要

ANALYZED      NO 文档正文

NO        YES 文档类型,数据库主键(不进行索引)

NOT_ANALYZED     NO 隐藏关键字

添加索引:writer.add(doc)

更新索引|替换索引:writer.updateDocument(new Term("id","1"), doc);

重新索引:writer.deleteall();

删除索引:writer.deleteDocuments(new Term("id","1"));

彻底删除索引:writer.forceMergeDeletes();

恢复删除的索引:reader.undeleteAll();

查询索引:readerxxx

 

 

 

域能加权,文档不能加权:setBoost

 

indexreader最好建立成单例的

delete可以用reader.deletDocument(new term(id,1))

不关闭索引可以用writer.conmit

 


转载于:https://my.oschina.net/u/2323537/blog/389937

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值