Solr__luence(三)检索与创建索引的API及名词解析

本文介绍如何使用Lucene进行索引的创建与文档检索。涵盖了IndexWriter、Document、Directory等核心API的使用方法,并解释了不同类型的字段及其配置选项。
前两篇介绍了如何使用luence创建与检索索引,可能还有很多不了解相应API的功能的,我就简单的解析一下相关用到的API或者说是常用的API以便查阅,其实后面我们用到Solr的时候,这个也只是让你了解好API以便在Solr上不至于那么空洞。

创建索引

创建索引库API:

1、 IndexWriter(负责索引库的CUD)

IndexWriter indexWriter = new IndexWriter("索引库存储目录", "写索引需要的配置信息");
addDocument()添加文档
updateDocument(Term term, Document doc)修改文档
deleteDocuments(Term term)删除文档
deleteAll()删除全部文档
commit()提交
close()关闭


2、Document文档

add()添加字段
get()获取字段值

3、Directory存储目录

FSDirectory文件系统存储目录(一般open)
1、 open()静态的方法

2、 NIOFSDirectory

3、 SimpleFSDirectory

RAMDirectory内存存储目录(不建议,容易吃内存,造成内存溢出)

 4、Analyzer分词器


5、IndexWriterConfig写索引配置信息

IndexWriterConfig indexWriterConfig = new IndexWriterConfig("当前Lucene的版本号", "分词器");
indexWriterConfig.setOpenMode(): 设置索引库打开的模式.
-- OpenMode.APPEND: 追加的模式.(不会创建索引库,只追加文档)
-- OpenMode.CREATE: 创建的模式.(每次都会重新创建索引库)
-- OpenMode.CREATE_OR_APPEND: 创建或追加的模式.

6、IndexableField字段接口

IndexableField : 字段.
	Field的子类:  Field field = new Field("字段名", "字段值", "是否存储");
	-- StringField : 主键列用它存储(它会建索引,但不会分词,它会把整个内容建成一个索引)
	-- TextField: 字符串
	    	new TextField("字段名", "字段值", "是否存储");
	     new TextField("字段名", Reader); : 内容不会存储.
	-- IntField
	-- FloatField
	-- DoubleField
	-- LongField
	-- StoredField : (不建索)只存储.

	FieldType ft = new FieldType();
	ft.setTokenized(true); // 需要分词
	ft.setIndexed(true); // 需要建索引
	ft.setStored(false); // 需要存储
	Field field = new Field("字段名", "字段值", ft);

7、FieldType字段类型

setTokenized()是否分词
setIndexed()是否建索引
setStored()是否存储
————Store.YES(存储)
————Store.NO(不存储)




检索


1、IndexSearcher检索对象

IndexSearcher indexSearcher = new IndexSearcher(indexReader);
search()检索
doc()获取文档

2、IndexReader读索引对象

通过它的子类DirectoryReader.open("索引库存储目录")方法:
IndexReader indexReader = DirectoryReader.open(FSDirectory.open(new File("")));


3、Query查询对象



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值