开发自己的搜索引擎完成了一段时间了,现在准备开始梳理一下思路,把以前的总结一下,为以后做真正的“谷歌”埋下伏笔,呵呵。。。。。。
一。Lucene的下载
牛逼的Apache旗下的Lucene,呵呵,无人不知啊,http://lucene.apache.org/,去这个地址自己下载,别说不会Dowmload
二.使用Lucene建立索引
将下载下来的包解压,把里面的Core,memory,analyzer啥的都拿出来,配置到自己的Eclipse上面,下面的事情就是写代码了。
package com.dreamers.creatindex;
import java.io.File;
import java.util.ArrayList;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.FSDirectory;
import org.dom4j.DocumentException;
import org.wltea.analyzer.lucene.IKAnalyzer;
import com.dreamers.xml.*;
import com.dreamers.read.*;
/**
* @category 创建所有XML索引
* @author bird
*
*/
public class CreatIndex {
private String INDEX_STORE_PATH ;
//创建索引
@SuppressWarnings("deprecation")
public void creatIndex(){
try{
GetPath path = new GetPath();
INDEX_STORE_PATH = path.getIndexPath();
File file = new File(INDEX_STORE_PATH);
Analyzer analyzer = new IKAnalyzer();
XmlReader xml = new XmlReader();
FSDirectory directory = FSDirectory.open(file);
IndexWriter writer = new IndexWriter(directory, analyzer, true,IndexWriter.MaxFieldLength.LIMITED);
ArrayList<String> lisId = xml.getId();
ArrayList<String> lisTitle = xml.getTitle();
ArrayList<String> lisKeyWords = xml.getKeyWords();
ArrayList<String> lisKind = xml.getKind();
ArrayList<String> lisDescribe = xml.getDescribe();
ArrayList<String> lisDate = xml.getDate();
ArrayList<String> lisUrl = xml.getUrl();
ArrayList<String> lisAuthor = xml.getAuthor();
ArrayList<String> lisPublisher = xml.getPublisher();
//System.out.println(lisUrl.get(5));
for (int i = 0; i < xml.getCount();i++){
Document doc = new Document();
//为ID创建Field
Field field = new Field("id",lisId.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED );
doc.add(field);
//为title创建索引
field = new Field("title",lisTitle.get(i),Field.Store.YES,Field.Index.ANALYZED);
doc.add(field);
//为keywords创建索引
field = new Field("keywords",lisKeyWords.get(i),Field.Store.YES,Field.Index.ANALYZED);
doc.add(field);
//为kind创建索引
field = new Field("kind",lisKind.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field);
//为describe创建索引
field = new Field("describe",lisDescribe.get(i),Field.Store.YES,Field.Index.ANALYZED);
doc.add(field);
//为data创建索引
field = new Field("date",lisDate.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field);
//为URL创建索引
field = new Field("url",lisUrl.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field);
//为author创建索引
field = new Field("author",lisAuthor.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field);
//为publisher创建索引
field = new Field("publisher",lisPublisher.get(i),Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field);
}
writer.addDocument(doc);
}
writer.close();
//directory.close();
System.out.println("索引创建完毕");
} catch (Exception e){
e.printStackTrace();
}
}
public static void main(String [] args) throws DocumentException{
CreatIndex index = new CreatIndex();
index.creatIndex();
}
}
这里不多说,最上面的每个list里面都藏有巨大的信息,都是一些字符串,就当是放到容器里的字符窜吧,然后下面的建立索引的过程都是一样的,代码比较短,就不需要什么注释了,呵呵
分享到:
相关推荐
Lueene是一个强大的全文索引引擎工具包,...网的中文搜索引擎的系统结构,Lucene的索引和搜索,并且设计实现了一个自己的搜索引擎——易搜中文搜 索引擎。结果表明,基于Lucene的搜索引擎在索引和查找上的效率很高。
基于Lucene的搜索引擎的研究与应用基于Lucene的搜索引擎的研究与应用
Lucene搜索引擎开发权威经典(附盘源码)【于天恩】.zip
学习Lucene和Nutch的入门书籍,学习搜索引擎开发值得一看的书籍
开发自己的搜索引擎《lucene2.0+heritrix》一书对应的源码资料,总共有30M,只上传了几个例子. ch2-lucene入门小例子 myReserch-可用的网络搜索引擎
《开发自己的搜索引擎--Lucene+Heritrix》讲解搜索引擎开发的畅销书
最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引...Lucene的目的是为软件开发人员提供一个简易用的工具包,以方便在目标系统中实现全文检索功能,或者是以此为基础建立起完整的全文检索引擎。
Lucene nutch 搜索引擎开发 Part1
开发自己的搜索引擎--Lucene+Heritrix
Lucene 实现的 搜索引擎 例子 ,里面有索引的生成 检查 等等
对文档建立索引的源代码 对文档检索的源代码 使用Lucene检索和使用java.lang.String内置方法进行检索的效率比较 安装:直接在Eclipse中选取“import->Existing Project” Eclipse工程/ch7:原书第七章和第九章的...
一个基于LUCENE搜索引擎项目例子一个基于LUCENE搜索引擎项目例子一个基于LUCENE搜索引擎项目例子
lucene 对 xml建立索引 建立索引就是怎么简单 呵呵
完整的《Lucene+nutch搜索引擎开发》PDF版一共83.6M,无奈我上传的最高限是80M,所以切成两个。这一个是主文件,还需要下载一个副文件Lucene+nutch搜索引擎开发.z01。解压时直接放到一起,解压这个主文件就行了。
搜索引擎开发现实文档(lucene)
使用C sharp开发搜索引擎 C#搜索引擎开发实战 23-Lucene简介(共23页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 24-索引原理(共22页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 25-查询原理(共13...
使用C sharp开发搜索引擎 C#搜索引擎开发实战 23-Lucene简介(共23页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 24-索引原理(共22页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 25-查询原理(共13...
垂直搜索引擎完全开源版 c#开发基于Lucene.net 1.前台结合Lucene的搜索引擎功能,使得数据搜索更快; 2.新增加采集功能,采集时图片下载,flash下载功能,默认配置的是南海网分类信息的采集规则; 3.该代码简洁,...
一个例子学懂搜索引擎(lucene).doc 中文搜索引擎技术揭密.doc 九大开源搜索引擎介绍.txt 基于Nutch的搜索引擎技术.pdf 基于开源工具搭建小型搜索引擎.pdf 整合开源工具的小型搜索引擎构建.pdf 用_Hadoop_进行分布式...
分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...