`
likunkun
  • 浏览: 91589 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene-2.0学习文档(2)

阅读更多
接http://www.iteye.com/post/190334
IndexWriter(File path, Analyzer a, boolean create)
IndexWriter(String path, Analyzer a, boolean create)
可见构造它需要一个索引文件目录,一个分析器(一般用标准的这个),最后一个参数是标识是否清空索引目录
它有一些设置参数的功能如:设置Field的最大长度
看个例子:
[code]
public void IndexMaxField() throws IOException
{
        IndexWriter indexWriter= new IndexWriter("c:\\index",new StandardAnalyzer(),true);
        Document doc1 = new Document();
        doc1.add(new Field("name1","程序员之家",Field.Store.YES,Field.Index.TOKENIZED));
        Document doc2 = new Document();
        doc2.add(new Field("name2","Welcome to the Home of programers",Field.Store.YES,Field.Index.TOKENIZED));
        indexWriter.setMaxFieldLength(5);
        indexWriter.addDocument(doc1);
        indexWriter.setMaxFieldLength(3);
        indexWriter.addDocument(doc1);
        indexWriter.setMaxFieldLength(0);
        indexWriter.addDocument(doc2);
        indexWriter.setMaxFieldLength(3);
        indexWriter.addDocument(doc2);
        indexWriter.close();
}
public void SearcherMaxField() throws ParseException, IOException
{
        Query query = null;
        Hits hits = null;
        IndexSearcher indexSearcher= null;
        QueryParser queryParser= null;
        queryParser = new QueryParser("name1",new StandardAnalyzer());
        query = queryParser.parse("程序员");
        indexSearcher= new IndexSearcher("c:\\index");
        hits = indexSearcher.search(query);
        System.out.println("您搜的是:程序员");
        System.out.println("找到了"+hits.length()+"个结果");
        System.out.println("它们分别是:");
        for (int i = 0; i < hits.length(); i++)
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("name1"));
        }
        query = queryParser.parse("程序员之家");
        indexSearcher= new IndexSearcher("c:\\index");
        hits = indexSearcher.search(query);
        System.out.println("您搜的是:程序员之家");
        System.out.println("找到了"+hits.length()+"个结果");
        System.out.println("它们分别是:");
        for (int i = 0; i < hits.length(); i++)
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("name1"));
        }
        queryParser = new QueryParser("name2",new StandardAnalyzer());
        query = queryParser.parse("Welcome");
        indexSearcher= new IndexSearcher("c:\\index");
        hits = indexSearcher.search(query);
        System.out.println("您搜的是:Welcome");
        System.out.println("找到了"+hits.length()+"个结果");
        System.out.println("它们分别是:");
        for (int i = 0; i < hits.length(); i++)
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("name2"));
        }           
        query = queryParser.parse("the");
        indexSearcher= new IndexSearcher("c:\\index");
        hits = indexSearcher.search(query);
        System.out.println("您搜的是:the");
        System.out.println("找到了"+hits.length()+"个结果");
        System.out.println("它们分别是:");
        for (int i = 0; i < hits.length(); i++)
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("name2"));
        }
        query = queryParser.parse("home");
        indexSearcher= new IndexSearcher("c:\\index");
        hits = indexSearcher.search(query);
        System.out.println("您搜的是:home");
        System.out.println("找到了"+hits.length()+"个结果");
        System.out.println("它们分别是:");
        for (int i = 0; i < hits.length(); i++)
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("name2"));
        }
}
[/code]
它的运行结果为:
总结一下:
1.设置Field的长度限制只是限制了搜索。如果用了Field.Store.YES的话还是会
全部被保存进索引目录里的。
2.为什么搜the没有搜出来呢是因为lucene分析英文的时候不会搜索the to of 等无
用的词(搜这些词是无意义的)。
3.New StandardAnlayzer()对于英文的分词是按空格和一些无用的词,而中文呢是全部的单个
的字。
4.设置Field的最大长度是以0开头和数组一样。
程序员之家----------3--------程序员之
                                    0 1 2  3
Welcome to the home of programmers------3------Welcome to the home of programmers

                                                   0           1         2
大家还可以试一下别的,以便加深一下印象
(未完)
  • 描述: lucene讲解图片
  • 大小: 39.1 KB
分享到:
评论
2 楼 ouspec 2006-12-22  
Lucas Lee 写道
提个题外话,Javaeye怎么搞了新的文本编辑器,搞得代码又这么长,每行后面都有空行,看得太不紧凑了。


这个和JavaEye的代码编辑没有关系。发贴没有用代码输入。
1 楼 LucasLee 2006-12-21  
提个题外话,Javaeye怎么搞了新的文本编辑器,搞得代码又这么长,每行后面都有空行,看得太不紧凑了。

相关推荐

    Lucene-2.0学习文档

    本篇文章将围绕"Lucene-2.0学习文档"的主题,结合Indexer.java、MyScoreDocComparator.java和MySortComparatorSource.java这三个关键文件,深入探讨Lucene的核心概念和实际应用。 首先,我们来看`Indexer.java`。这...

    lucene-2.0

    该版本发布于2006年,虽然现在已经有了更新的版本,但Lucene 2.0仍然是许多遗留系统和学习全文检索技术的重要参考。 1. **Lucene的基本架构** Lucene的核心架构包括了索引和查询两个主要部分。索引阶段,Lucene将...

    lucene-2.0.CHM

    我自己根据lucene的html格式的帮助文档编译的chm

    Incubating-Apache-Lucene.Net-2.0-004-11Mar07.src.zip

    2. 文档索引:索引是Lucene.Net的核心概念,它将文本数据转换为可供快速搜索的结构。索引过程包括分析文本、建立倒排索引等步骤,以提高查询速度。 3. 查询解析:用户可以使用标准的Lucene查询语法或构造复杂的查询...

    Incubating-Apache-Lucene.Net-2.0-004-11Mar07.bin.zip

    2. **分词**:Lucene.Net使用复杂的分词算法,如英文的词干提取和停用词过滤,将文本分解成有意义的词语单元,提高搜索精度。 3. **倒排索引**:Lucene.Net采用倒排索引结构,这是一种高效的数据结构,用于快速查找...

    Lucene.Net 2.0 源码+文档

    总的来说,"Lucene.Net 2.0 源码+文档"是学习和研究全文检索技术的宝贵资料,无论是对.NET开发人员还是对信息检索感兴趣的人员,都能从中获益匪浅。通过深入研究源码和文档,你可以掌握如何利用Lucene.Net构建高效...

    Lucene.net 2.0 API + DLL 下载

    另外,`Lucene.Net-2.0.doc.zip`文件可能包含的是关于Lucene.NET 2.0的文档资料,可能包括API参考、用户指南、示例代码等,对于学习和掌握这个版本的API非常有帮助。通过阅读这些文档,开发者可以理解如何初始化搜索...

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    基于Java的全文索引引擎.doc lucene测试代码.txt lucene为数据库搜索建立增量索引.txt lucene数据库索引.txt 新闻系统全文检索的思绪.txt ... 关于lucene2.0的创建、检索和删除功能的完整实现.doc weblucene.txt

    Lucene.Net-2.0.doc.zip

    **Lucene.Net 2.0 深度解析** Lucene.Net 是 Apache Lucene 的 .NET 实现,它是一个高性能、全文本搜索库,适用于 .NET 开发者。Lucene.Net 2.0 版本提供...这份 MSDN 操作文档将是学习和应用 Lucene.Net 的宝贵资源。

    lucene-core-2.9.2.jar

    2. 索引过程:Lucene的索引过程包括分析(Analyzer)、术语文档表(Term Document Matrix)生成和倒排索引(Inverted Index)的构建。分析阶段将输入文本拆分成有意义的单元——术语,然后创建术语文档表,最后构建...

    Lucene.Net2.0(C#)

    总结,Lucene.Net 2.0是.NET开发者实现全文检索的重要工具,它的源代码提供了丰富的学习材料,可以帮助开发者提升搜索功能的开发效率和质量。无论是在企业级应用还是个人项目中,熟悉并掌握Lucene.Net都能大大增强你...

    Lucene.net 2.0源码

    《深入剖析Lucene.NET 2.0:打造高效全文搜索引擎》 Lucene.NET 2.0 是一个基于 Apache Lucene 的...无论是为了学习,还是为了开发实际的搜索引擎应用,Lucene.NET 2.0 都是一个值得投入时间和精力去探索的优秀框架。

    重要lucene2.0 学习文档

    在 Lucene 2.0 版本中,相比于之前的 1.4.3 版本,有很多改进和优化,但同时也存在向后兼容性问题。2006 年 6 月 1 日发布的 Lucene 2.0,其下载地址是 http://apache.justdn.org/lucene/java/。 下面通过两个示例...

    lucene 2.0 api以及lucene 3.0 api

    同样,`lucene-2.0.CHM` 文件则提供了 Lucene 2.0 的 API 文档,尽管旧版本,但依然能为那些需要维护旧系统或对比学习的开发者提供参考。 总的来说,从 Lucene 2.0 进化到 3.0,主要变化在于性能提升、查询功能增强...

    Lucene.2.0.API

    这份API文档以CHM(Compiled Help Manual)格式呈现,便于开发者快速查阅和学习。 在Lucene 2.0中,主要的知识点包括以下几个核心模块: 1. **索引模块**:这是Lucene的基础,用于构建和管理全文索引。主要包括`...

    lucene2.0+Heritrix配套源码

    《lucene2.0+Heritrix配套源码》是一个针对搜索引擎开发的资源包,包含了构建自定义搜索引擎所需的关键组件。Lucene是一个流行的全文搜索引擎库,而Heritrix则是一个强大的网页抓取工具,用于收集互联网上的数据。这...

    lucene2.0与其分词工具包

    《Lucene 2.0及其分词工具包详解》 Lucene是一款由Apache软件基金会开发的全文搜索引擎库,专门用于信息检索。它以其强大的搜索功能和高效的性能在...尽管年代久远,Lucene 2.0仍不失为一个值得研究和学习的经典案例。

    《开发自己的搜索引擎-Lucene 2.0 Heritrix》cd(全)(下载地址)

    通过学习Lucene 2.0和Heritrix的相关知识,我们可以构建出一个简单的搜索引擎。首先使用Heritrix爬取目标网站的内容,然后通过Lucene 2.0对这些内容进行索引和搜索。虽然这只是一个基础框架,但它为理解搜索引擎的...

    开发自己的搜索引擎--Lucene 2.0+Heritrix(爬虫)

    在Lucene 2.0版本中,它已经相当成熟,支持多种功能,如索引创建、查询解析、文档排序等。Lucene的核心优势在于其高效的倒排索引机制,它能够快速地查找包含特定关键词的文档。开发者可以利用Lucene API来创建索引,...

Global site tag (gtag.js) - Google Analytics