`

lucene2.0学习文档八

阅读更多
下面是搜索的例子:
public void SearchSort1() throws IOException, ParseException {
       IndexSearcher indexSearcher = new IndexSearcher("C:\\indexStore");
       QueryParser queryParser = new QueryParser("sort",new StandardAnalyzer());
       Query query = queryParser.parse("4");
       Hits hits = indexSearcher.search(query);
       System.out.println("有"+hits.length()+"个结果");
       Document doc = hits.doc(0);
       System.out.println(doc.get("sort"));
}
public void SearchSort2() throws IOException, ParseException {
       IndexSearcher indexSearcher = new IndexSearcher("C:\\indexStore");
       Query query = new RangeQuery(new Term("sort","1"),new Term("sort","9"),true);
       //这个地方前面没有提到,它是用于范围的Query可以看一下帮助文档.
       Hits hits = indexSearcher.search(query,new Sort(new SortField("sort",new MySortComparatorSource())));
     System.out.println("有"+hits.length()+"个结果");
       for(int i=0;i< hits.length();i++){
           Document doc = hits.doc(i);
           System.out.println(doc.get("sort"));
       }
}
public class MyScoreDocComparator implements ScoreDocComparator {
private Integer[]sort;
public MyScoreDocComparator(String s,IndexReader reader, String fieldname)
     throws IOException{
      sort = new Integer[reader.maxDoc()];
      for(int i = 0;i< reader.maxDoc();i++){
           Document doc =reader.document(i);
           sort[i]=new Integer(doc.get("sort"));
       }
   }
   public int compare(ScoreDoc i, ScoreDoc j){
      if(sort[i.doc]>sort[j.doc])
           return 1;
      if(sort[i.doc]< sort[j.doc])
          return -1;
      return 0;
   }
   public int sortType(){
      return SortField.INT;
   }
   public Comparable sortValue(ScoreDoc i){
    // TODO 自动生成方法存根
    return new Integer(sort[i.doc]);
   }
}
public class MySortComparatorSource implements SortComparatorSource {
private static final long serialVersionUID = -9189690812107968361L;
public ScoreDocComparator newComparator(IndexReader reader, String fieldname)
     throws IOException{
        if(fieldname.equals("sort"))
           return new MyScoreDocComparator("sort",reader,fieldname);
           return null;
        }
}
SearchSort1()输出的结果没有排序,SearchSort2()就排序了。
分享到:
评论

相关推荐

    Lucene-2.0学习文档

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

    重要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,主要变化在于性能提升、查询功能增强...

    lucene2.0与其分词工具包

    然而,随着时间的推移,Lucene已经发展到更高的版本,如现在的Lucene 8.x,但在一些特定的场景或对老版本有依赖的项目中,Lucene 2.0依然具有其独特的价值。 Lucene 2.0的核心特性包括文档索引、查询解析、评分机制...

    开发自己的搜索引擎《lucene2.0+heritrix》一书对应的源码资料

    这里我们关注的是基于开源项目Lucene 2.0和Heritrix的一本书——《开发自己的搜索引擎》的源码资料。Lucene是一个高性能、全文本搜索库,而Heritrix则是一个强大的网页抓取工具,它们共同构成了搜索引擎的基础架构。...

    lucene2.0+Heritrix配套源码

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

    开发自己的搜索引擎Lucene2.0+Heritrix

    ### 开发自己的搜索引擎:Lucene ...通过上述介绍,我们不仅了解了 Lucene 和 Heritrix 的基本功能,还学习了如何利用这两个工具构建一个完整的搜索引擎系统。这对于任何希望开发搜索引擎的人来说都是非常宝贵的资源。

    Lucene2.0+Heritrix(源代码)

    总之,通过研究"Lucene2.0+Heritrix"的源代码,开发者不仅可以学习到搜索引擎的基础原理,还能掌握实际操作中的技巧和经验。这是一条通向构建个性化、高效搜索引擎的道路,对于从事信息检索、大数据分析和网站运营的...

    lucene-2.0

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

    Lucene.2.0.API

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

    Lucene 2.0+Heriterx书源代码-ch7lib

    《深入理解Lucene 2.0与Heritrix:源码剖析》是一本关于搜索引擎开发的经典著作,书中详细讲解了如何使用Lucene 2.0和Heritrix这两个开源工具进行信息检索。在这个名为"Lucene 2.0+Heriterx书源代码-ch7lib"的压缩包...

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

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

    Lucene.Net 2.0 源码+文档

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

    Lucene2.0+Nutch0.8 API帮助文档(CHM格式)

    《Lucene2.0+Nutch0.8 API帮助文档》是一个综合性的技术资源,它包含了对Lucene 2.0和Nutch 0.8这两个关键的开源搜索引擎库的详细接口和功能说明。这两个组件在信息检索、全文搜索以及网络爬虫领域有着广泛的应用。 ...

    lucene2.0+heritrix 随书光盘

    《lucene2.0+heritrix 随书光盘》是针对搜索引擎技术的一个资源集合,其中包含了Lucene 2.0和Heritrix的相关示例及教程。Lucene是一款强大的全文检索库,而Heritrix则是一个互联网爬虫工具,它们在构建搜索引擎时起...

    Lucene2.0+Heritrix搜索引擎 随书光盘

    《Lucene2.0+Heritrix搜索引擎》随书光盘包含了两个重要的开源搜索技术——Apache Lucene 2.0和Heritrix的资源和教程。Lucene是Java开发的全文检索库,而Heritrix则是一个网络爬虫工具,它们在构建大规模搜索引擎和...

    Lucene2.0+Heritrix(ch4源代码)

    《深入理解Lucene 2.0与Heritrix:源码剖析及应用实践》 Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了高效的索引和搜索功能,广泛应用于各种信息检索系统。Heritrix是互联网档案馆...

    Lucene2.0实例

    但作为入门实例,这个"Lucene2.0实例"应该会从最基本的层面教你如何启动并运行一个简单的搜索应用。通过学习并实践这些基础操作,你可以逐步掌握Lucene的核心功能,为进一步深入学习和开发更复杂的搜索系统奠定基础...

    【完整光盘24.5M】开发自己的搜索引擎-Lucene 2.0+Heritrix.zip

    本资料集——"【完整光盘24.5M】开发自己的搜索引擎-Lucene 2.0+Heritrix.zip",正是这样一个学习资源,旨在帮助用户理解如何利用开源工具Lucene 2.0和Heritrix构建自己的搜索引擎。 Lucene是Apache软件基金会的一...

    Lucene.net 2.0 API + DLL 下载

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

Global site tag (gtag.js) - Google Analytics