Lucene索引和搜索核心类的简单介绍
2011-08-11 23:02
323 查看
IndexWirter(写索引):
索引过程的核心组件,这个类负责创建新索引和打开已有索引,以及删除,新增活更新已索引的文档。IndexWriter创建索引文件需要空间有Directory完成Directory:
描述索引文件存放的位置,它是一个抽象类,由他的的子类来完成具体的索引文件的存储路劲,在前面的Indexer例子中,我们用FSDirectory.open方法来获取索引文件在文件系统中具体的存放路劲,Directory有大量的实现,具体请参考其他资料,IndexWriter不能直接索引文本,这必须先由Analyzer将文本分隔成独立的单词才行
Anaylzer(分析器):
Analylzer是一个抽象类,lucene提供了几个类实现它, 它负责从文本文件中提取语汇单元,并提出剩下的无用信息,如果被索引的内容不是纯文本文件,需要先转换为文本文档。这个可以是TIKa从常用的多媒体格式文件中提取文件内容。Document(文档) :
该对象代表一些域(Field)的集合。我们可以把它看成是一个虚拟文档。他是由我们从文件文件中抽取出来的通过域组成的。如一个html页面。从中抽取出url,href等相关元数据都作为文档的不同域单独存储并被索引。Filed(域):
索引文档都包含许多不同名称的域。这些域由Filed类组成。每个域都有对应的一个域名和域值。文档可能不止一个同名的域。在这种情况下,域的值就按照索引操作顺序添加进去。在搜索时,所有域的文本就好像连在一起。作为一个文档域来处理IndexSearcher:
Indexsearcher类用于搜索由indexWriter所创建的索引。这个类公开的几个方法,他是连接索引的中心的环节,可以把IndexSearcher类看做一个已只读方式打开索引的类,他需要我们的Directory类来开打我们所创建的索引,然后才能提供大量的方法,其中的一些方法有它的父类Searcher提供。最简单的搜索放是将当个Query对象和Int topN计数作为该方法的参数。并返回一个TopDocs对象,如下。Directory directory=FSDirectory.open(new File("")); IndexSearcher searcher=new IndexSearcher(directory); Query query=new TermQuery(new Term("contenxt","hello")); TopDocs topDocs=searcher.search(query,10); searcher.close();
Term:
Term对象是搜索的最基本单元,与Field类似,Term对象包含一对字符串元素:域名和单词(或域文本值)Query:
Lucene有许多Query的子类。这里我只介绍了其中的一种TermQuery,其他的Query子类有:BooleanQuery,PhraseQuery,PrefixQuery,PhrasePrefixQuery,TermRangeQuery,NumericTangeQuery,FilteredQuery和SpanQuery,,TermQuery类,他是lucene中大多数复杂查询的基础TermQuery:
TermQuery是他用来匹配指定域中所包含特定向的文档。TopDocs:
TopDocs类是一个简单的指针容器。指针一般指向前N个排名的搜索结果,TopDocs会记录前N个结果中每个结果的int docId(可以用他来恢复文档)和浮点分数(排名)。相关文章推荐
- Lucene5 学习笔记(2) —— 简单介绍 Lucene 搜索功能和索引的修改、删除
- Lucene3.5 之 索引和搜索简单示例
- Lucene介绍和创建索引和搜索初步
- Lucene中最简单的索引和搜索示例
- 全文检索Lucene入门之创建索引及简单搜索
- Lucene2.9.2 + 盘古分词2.3.1(一) 入门: 建立简单索引,搜索(原创)
- 使用lucene3.6创建索引和实现简单搜索
- Lucene介绍和创建索引和搜索初步
- 使用lucene3.6创建索引和实现简单搜索
- Lucene.Net核心类简介,创建索引,搜索,Lucene高亮组建演示,Rss获得最新帖子,只索引帖子的有意义部分,在AddDocument之前先移除旧有文档.
- 使用Lucene开发简单的站内新闻搜索引擎(索引的搜索)
- lucene 4.3 索引的简单创建和搜索代码展示
- lucene-索引过程和搜索过程的核心类
- lucene 3.4索引和搜索过程中核心类
- lucene 3.4索引和搜索过程中核心类
- 理解Lucene索引与搜索过程中的核心类
- Jsp+servlet+javabean使用Lucene3.6.2做一个简单数据库搜索的总结(1)
- 用lucene为数据库搜索建立增量索引
- 利用Lucene.net搭建站内搜索(3)---创建索引