它的运行结果为:
总结一下:
1.设置Field的长度限制只是限制了搜索。如果用了Field.Store.YES的话还是会
全部被保存进索引目录里的。
2.为什么搜the没有搜出来呢?是因为lucene分析英文的时候不会搜索the to of 等无用的词(搜这些词是无意义的)。
3.New StandardAnlayzer()对于英文的分词是按空格和一些无用的词,而中文呢是全部的单个的字。
4.设置Field的最大长度是以0开头和数组一样。
大家还可以试一下别的,以便加深一下印象
到现在我们已经可以用lucene建立索引了
下面介绍一下几个功能来完善一下:
1.索引格式
其实索引目录有两种格式,一种是除配置文件外,每一个Document独立成为一个文件(这种搜索起来会影响速度)。另一种是全部Document成一个文件,这样属于复合模式就快了。
2.索引文件可放的位置:
索引可以存放在两个地方1.硬盘,2.内存。放在硬盘上可以用FSDirectory(),放在内存的用RAMDirectory()不过一关机就没了。
FSDirectory.getDirectory (File file, boolean create)
FSDirectory.getDirectory(String path, boolean create)两个工厂方法返回目录
New RAMDirectory() 就直接可以,再和IndexWriter(Directory d, Analyzer a, boolean create) 一配合就行了
如:
IndexWrtier indexWriter = new IndexWriter(FSDirectory.getDirectory(“c:\\index”,true),new StandardAnlyazer(),true);
IndexWrtier indexWriter = new IndexWriter(new RAMDirectory(),new StandardAnlyazer(),true);
3.索引的合并
这个可用IndexWriter.addIndexes(Directory[] dirs) 将目录加进去
来看个例子:
public void UniteIndex() throws IOException{
IndexWriter writerDisk = new IndexWriter(FSDirectory.getDirectory("c:\\indexDisk",
true),new StandardAnalyzer(),true);
Document docDisk = new Document();
docDisk.add(new Field("name","程序员之家",Field.Store.YES,Field.Index.TOKENIZED));
writerDisk.addDocument(docDisk);
RAMDirectory ramDir = new RAMDirectory();
IndexWriter writerRam = new IndexWriter(ramDir,new StandardAnalyzer(),true);
Document docRam = new Document();
docRam.add(new Field("name","程序员杂志",Field.Store.YES,Field.Index.TOKENIZED));
writerRam.addDocument(docRam);
writerRam.close();//这个方法非常重要,是必须调用的
writerDisk.addIndexes(new Directory[]{ramDir});
writerDisk.close();
}
public void UniteSearch() throws ParseException, IOException{
QueryParser queryParser = new QueryParser("name",new StandardAnalyzer());
Query query = queryParser.parse("程序员");
IndexSearcher indexSearcher =new IndexSearcher("c:\\indexDisk");
Hits hits = indexSearcher.search(query);
System.out.println("找到了"+hits.length()+"结果");
for(int i=0;i< hits.length();i++){
Document doc = hits.doc(i);
System.out.println(doc.get("name"));
}
}
这个例子是将内存中的索引合并到硬盘上来.
注意:合并的时候一定要将被合并的那一方的IndexWriter的close()方法调用。
分享到:
相关推荐
本篇文章将围绕"Lucene-2.0学习文档"的主题,结合Indexer.java、MyScoreDocComparator.java和MySortComparatorSource.java这三个关键文件,深入探讨Lucene的核心概念和实际应用。 首先,我们来看`Indexer.java`。这...
在 Lucene 2.0 版本中,相比于之前的 1.4.3 版本,有很多改进和优化,但同时也存在向后兼容性问题。2006 年 6 月 1 日发布的 Lucene 2.0,其下载地址是 http://apache.justdn.org/lucene/java/。 下面通过两个示例...
同样,`lucene-2.0.CHM` 文件则提供了 Lucene 2.0 的 API 文档,尽管旧版本,但依然能为那些需要维护旧系统或对比学习的开发者提供参考。 总的来说,从 Lucene 2.0 进化到 3.0,主要变化在于性能提升、查询功能增强...
《Lucene 2.0及其分词工具包详解》 Lucene是一款由Apache软件基金会开发的全文搜索引擎库,专门用于信息检索。它以其强大的搜索功能和高效的性能在...尽管年代久远,Lucene 2.0仍不失为一个值得研究和学习的经典案例。
这里我们关注的是基于开源项目Lucene 2.0和Heritrix的一本书——《开发自己的搜索引擎》的源码资料。Lucene是一个高性能、全文本搜索库,而Heritrix则是一个强大的网页抓取工具,它们共同构成了搜索引擎的基础架构。...
《lucene2.0+Heritrix配套源码》是一个针对搜索引擎开发的资源包,包含了构建自定义搜索引擎所需的关键组件。Lucene是一个流行的全文搜索引擎库,而Heritrix则是一个强大的网页抓取工具,用于收集互联网上的数据。这...
### 开发自己的搜索引擎:Lucene ...通过上述介绍,我们不仅了解了 Lucene 和 Heritrix 的基本功能,还学习了如何利用这两个工具构建一个完整的搜索引擎系统。这对于任何希望开发搜索引擎的人来说都是非常宝贵的资源。
总之,通过研究"Lucene2.0+Heritrix"的源代码,开发者不仅可以学习到搜索引擎的基础原理,还能掌握实际操作中的技巧和经验。这是一条通向构建个性化、高效搜索引擎的道路,对于从事信息检索、大数据分析和网站运营的...
该版本发布于2006年,虽然现在已经有了更新的版本,但Lucene 2.0仍然是许多遗留系统和学习全文检索技术的重要参考。 1. **Lucene的基本架构** Lucene的核心架构包括了索引和查询两个主要部分。索引阶段,Lucene将...
这份API文档以CHM(Compiled Help Manual)格式呈现,便于开发者快速查阅和学习。 在Lucene 2.0中,主要的知识点包括以下几个核心模块: 1. **索引模块**:这是Lucene的基础,用于构建和管理全文索引。主要包括`...
《深入理解Lucene 2.0与Heritrix:源码剖析》是一本关于搜索引擎开发的经典著作,书中详细讲解了如何使用Lucene 2.0和Heritrix这两个开源工具进行信息检索。在这个名为"Lucene 2.0+Heriterx书源代码-ch7lib"的压缩包...
通过学习Lucene 2.0和Heritrix的相关知识,我们可以构建出一个简单的搜索引擎。首先使用Heritrix爬取目标网站的内容,然后通过Lucene 2.0对这些内容进行索引和搜索。虽然这只是一个基础框架,但它为理解搜索引擎的...
《Lucene2.0+Nutch0.8 API帮助文档》是一个综合性的技术资源,它包含了对Lucene 2.0和Nutch 0.8这两个关键的开源搜索引擎库的详细接口和功能说明。这两个组件在信息检索、全文搜索以及网络爬虫领域有着广泛的应用。 ...
总的来说,"Lucene.Net 2.0 源码+文档"是学习和研究全文检索技术的宝贵资料,无论是对.NET开发人员还是对信息检索感兴趣的人员,都能从中获益匪浅。通过深入研究源码和文档,你可以掌握如何利用Lucene.Net构建高效...
《lucene2.0+heritrix 随书光盘》是针对搜索引擎技术的一个资源集合,其中包含了Lucene 2.0和Heritrix的相关示例及教程。Lucene是一款强大的全文检索库,而Heritrix则是一个互联网爬虫工具,它们在构建搜索引擎时起...
《Lucene2.0+Heritrix搜索引擎》随书光盘包含了两个重要的开源搜索技术——Apache Lucene 2.0和Heritrix的资源和教程。Lucene是Java开发的全文检索库,而Heritrix则是一个网络爬虫工具,它们在构建大规模搜索引擎和...
《深入理解Lucene 2.0与Heritrix:源码剖析及应用实践》 Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了高效的索引和搜索功能,广泛应用于各种信息检索系统。Heritrix是互联网档案馆...
但作为入门实例,这个"Lucene2.0实例"应该会从最基本的层面教你如何启动并运行一个简单的搜索应用。通过学习并实践这些基础操作,你可以逐步掌握Lucene的核心功能,为进一步深入学习和开发更复杂的搜索系统奠定基础...
本资料集——"【完整光盘24.5M】开发自己的搜索引擎-Lucene 2.0+Heritrix.zip",正是这样一个学习资源,旨在帮助用户理解如何利用开源工具Lucene 2.0和Heritrix构建自己的搜索引擎。 Lucene是Apache软件基金会的一...
另外,`Lucene.Net-2.0.doc.zip`文件可能包含的是关于Lucene.NET 2.0的文档资料,可能包括API参考、用户指南、示例代码等,对于学习和掌握这个版本的API非常有帮助。通过阅读这些文档,开发者可以理解如何初始化搜索...