视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用Lucene2.31索引Oracle10g的数据库
2020-11-09 11:50:55 责编:小采
文档

使用Lucene 2.31 索引 Oracle 10g的数据库

1,使用主要技术:
Lucene 2.3.1
IK_CAnalyzer 1.4 中文分词
HtmlParser 1.6 HTML文件/文本解析器 缺点:不能忽略的内容


2,其他实现方法:

每天做对每类做增量索引 索引内容:类型,URL,TEXT内容,标题,作者,时间。

3,在Oracle 10g上建表:

-- Create table
create table IZ_SEARCH_ENGINE
(
ID NUMBER not null,
INDEX_DIR VARCHAR2(50),
TYPE VARCHAR2(500), 类型
TYPE_DESC VARCHAR2(50), 类型注释
TABLE_MAXVALUE VARCHAR2(50), 某表最大值
TABLE_SQLS CLOB, (最某表没有被索引的SQL语句,如select .... from XXX where id>#ID# , #ID# 取自TABLE_MAXVALUE )
STATUS VARCHAR2(20) default 'offline', 暂时无用
TYPE_TRUETYPE VARCHAR2(50) 暂时无用
)

4,,建立索引的JAVA关键代码:

String INDEX_DIR = “/home/xue24_index_book”; //指定索引目录
IndexWriter writer = new IndexWriter(INDEX_DIR, new IK_CAnalyzer(), true); //准备索引区,并指定分词分析器
Document doc = new Document(); //实例化新document
doc.add(new Field(“type”, “社区”, Field.Store.YES, Field.Index.TOKENIZED)); //为document设置字段:type
doc.add(new Field(“title”, “标题标题” Field.Store.YES, Field.Index.TOKENIZED)); //为document设置字段:title
writer.addDocument(doc); //将该document加入索引目录
writer.optimize(); //优化
writer.close(); //关闭索引

5,搜索的JSP关键代码:

String INDEX_DIR_BOOK = "/home/xue24_index/book";
String INDEX_DIR_BBS = "/home/xue24_index/bbs";

Searcher[] searchers=new Searcher[2];
searchers[0] = new IndexSearcher(INDEX_DIR_BOOK);
searchers[1] = new IndexSearcher(INDEX_DIR_BBS);

Searcher searcher = new MultiSearcher(searchers);
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(new String[] {"title","content","author" }, new IK_CAnalyzer());
Query query = queryParser.parse(keyword); //分析查询

Hits hits = searcher.search(query);// 搜索索引
out.println(“共找到结果:”+hits.length());
for(int i=0;i Document doc = hits.doc(i);
out.println(“标题:” +doc.get("title") );
}


6,再写一个linux cron 定期执行,或用quartz插件来完成增量索引。

Lucene 的详细介绍:请点这里
Lucene 的下载地址:请点这里

下载本文
显示全文
专题