您现在的位置是:主页 > news > 分类型网站建设/学生个人网页制作html

分类型网站建设/学生个人网页制作html

admin2025/4/19 22:08:24news

简介分类型网站建设,学生个人网页制作html,办公空间设计公司排名,rdm响应式网站开发之前利用LuceneHeritrix,构建了一个简单的专利搜索引擎。不过当初对Lucene内部实现一无所知,知其然而不知其所以然。既然Lucene是Apache下的开源工具包,那么不分析一下源码总觉得有些可惜。事实上,我对Java也是半吊子,…

分类型网站建设,学生个人网页制作html,办公空间设计公司排名,rdm响应式网站开发之前利用LuceneHeritrix,构建了一个简单的专利搜索引擎。不过当初对Lucene内部实现一无所知,知其然而不知其所以然。既然Lucene是Apache下的开源工具包,那么不分析一下源码总觉得有些可惜。事实上,我对Java也是半吊子,…

之前利用Lucene+Heritrix,构建了一个简单的专利搜索引擎。不过当初对Lucene内部实现一无所知,知其然而不知其所以然。既然Lucene是Apache下的开源工具包,那么不分析一下源码总觉得有些可惜。事实上,我对Java也是半吊子,有些知识了解的也不详细,于是一边查资料一边分析。所以分析的不一定好,也不一定正确。欢迎内行指正。

【Lucene源码下载连接】http://archive.apache.org/dist/lucene/java/这里可以找到名为Lucene-2.0.0-src的压缩文件,即2.0.0版本源码。截至本文发表日期,最新版本是2011年9月13日发布的3.4.0版本。至于为什么要分析2.0.0版而不是3.4.0版,是因为版本越靠前越靠近Lucene的的核心,再者鉴于我的实际水平,所以先从2.0.0版本开始分析。以后随着对Lucene认识的加深,再分析更高版本吧。好了,首先给一个简单的Lucene范例。

注:在建立Java工程的时候,需要引入Lucene2.0.0版本的工具包,可在Lucene源码下载地址中找到名为Lucene-2.0.0的压缩文件,下载解压后将名为Lucene-core-2.0.0的jar包引入工程。

package com.threereading;import java.io.IOException;import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;public class HelloWorld {public static void main(String[] args) {
// TODO Auto-generated method stub
String mtext="This is the text to be indexed.";
//索引的存储路径
String index_path="E:\\index";
//创建文本内容Field
Field mfield=
new Field("textcontent",mtext,Field.Store.YES,Field.Index.TOKENIZED);
//创建一个Document
Document mdoc=new Document();
//把文本内容Field加入到Document中
mdoc.add(mfield);
try {
//创建一个IndexWriter实例
IndexWriter indexwriter=
new IndexWriter(index_path,new StandardAnalyzer(),true);
//向索引中加入Document对象
indexwriter.addDocument(mdoc);
indexwriter.close();//初始化一个IndexSearcher
IndexSearcher indexsearcher=new IndexSearcher(index_path);
//构建一个Term对象
Term term=new Term("textcontent","text");
//构建一个Query对象
Query query=new TermQuery(term);
//检索
Hits hits=indexsearcher.search(query);
//输出查询结果
for(int i=0;i<hits.length();i++)
System.out.println(hits.doc(i));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

运行程序,输出结果为:

Document<stored/uncompressed,indexed,tokenized<textcontent:This is the text to be indexed.>>

通过此程序,我们可以发现,为了使用Lucene,一个应用程序一般需要:

1、通过Field来创建Document对象;

2、创建一个IndexWriter对象,并调用它的addDocument方法来添加Document对象;

3、构建一个查询对象;

4、初始化一个IndexSearcher对象,并调用它的search方法查询。

需要说明的是,整个分析过程将以这样一个简单程序的运行步骤展开。网上也有人一个类一个类的分析,不过我觉得那样不易理解,如果结合适当的程序运行过程分析脉络会更清晰一些。

【声明】该文系本人原创,如若转载,请注明转载地址,谢谢合作。

转载于:https://www.cnblogs.com/shanruifeng/archive/2011/10/17/2215284.html