信息检索的过程分为以下几个步骤:
1、构建文本库;在开发检索功能钱,首先要构建一个文本数据库,这个数据库用来保存用户可能检索的信息。搜索引擎的文本库是
web文本库,通过网络爬虫从WWW中把所需的web获取到,构建成web库。
2、建立索引;有了基本的web库之后,根据web库建立索引。索引能够大大提高信息检索的速度。如百度、google等搜索引擎均采
用倒排的方式来建立索引
3、进行搜索
4、对结果进行过滤。将用户搜索到的结果按照一定的规则进行过滤或排序,在返回给用户。
本文是总结怎样学习利用lucene建立索引。
lucene的索引过程是从IndexWriter的addDocument开始,addDocument可以为已经建立好的Document建立索引。例如示例:
IndexWriter writer=new IndexWriter(INDEX_STORE_PATH,new MMAnalyzer(),true);
File filesDir=new File(inputDir);
File[] files=filesDir.listFiles();
//遍历数组
for(int i=0;i<files.length;i++){
String fileName=files[i].getName();
if(fileName.substring(fileName.lastIndexOf(".")).equals(".txt")){
Document doc=new Document();
Field field=new Field("filename",files[i].getName(),
Field.Store.YES,Field.Index.TOKENIZED);
doc.add(field);
field=new Field("content",loadFileToString(files[i]),
Field.Store.NO,Field.Index.TOKENIZED);
doc.add(field);
writer.addDocument(doc);
}
}
writer.close();
Document含义为文档,代表一种逻辑文件。lucene本身无法对物理文件进行索引,只能识别并处理Document类型的文件。
所以在建立索引时,可以将每一个Document与一个物理文件进行对应,用一个Document来代替一个物理文件。也可以从
不同的物理文件中抽取数据源,放在一个Document中。
而在Document中,数据源是通过Field进行汇集的,一个数据源由一个Field类表示。