`
qpshenggui
  • 浏览: 14302 次
  • 性别: Icon_minigender_1
  • 来自: 襄阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

lucene IndexSearcher实现搜索

阅读更多

public static void main(String args[]) throws CorruptIndexException,IOException, ParseException {
        // IndexSearcher是实现搜索的关键
        IndexSearcher searcher = new IndexSearcher(FSDirectory.open(new File("X:/jspublisher/doc/entryindex")), true);
        /*       
         //多条件
            BooleanQuery bQuery = new BooleanQuery();
            Query query1 = null;
            BooleanClause.Occur[] flags = new BooleanClause.Occur[] {BooleanClause.Occur.SHOULD,BooleanClause.Occur.SHOULD};
            query1 = MultiFieldQueryParser.parse(Version.LUCENE_29,"如何", new String[] {"ENTRY_NAME","DESC1"}, flags, new IKAnalyzer());
            bQuery.add(query1, Occur.MUST);
        */
        //模糊查询
       Term term1 = new Term("ENTRY_NAME","数"+"~");
      // Term term1 = new Term("DESC0","goog");
       FuzzyQuery query = new FuzzyQuery(term1,0.1f,1);
      
        //精确匹配
/*        // query代表查询对象
        Query query = null;
        // 查询解析器, 将查询content字段
        QueryParser parser = new QueryParser(Version.LUCENE_29,"DESC", new IKAnalyzer());
        query = parser.parse(queryStr);
        // 搜索结果保存在TopScoreDocCollector.
*/        TopScoreDocCollector c = TopScoreDocCollector.create(100, true);
        // 搜索
        searcher.search(query, c);
   
        // 得到满足条件的文档总数
        System.out.println("总共搜索到 " + c.getTotalHits() + " 个资源。");
        // 得到文档集合
        ScoreDoc[] docs = c.topDocs(0, c.getTotalHits()).scoreDocs;
       
        //存储符合条件的记录 
        int startIndex = 0,endIndex = 10; //startIndex、endIndex做为分页用
       
        ArrayList<String> list=new ArrayList<String>(); 
        for (int i = startIndex;i < endIndex && i < docs.length; i++) {
            Document documents = searcher.doc(i);
            int sum = Integer.parseInt(documents.get("DESC_COUNT"));
            //注解
            for(int a = 0 ;a < sum ;a++ ){
                //Document documentss = searcher.doc(a);
                System.out.println("count_desc--"+documents.get("DESC"+a));
            }
                Document document=searcher.doc(docs[i].doc);
                int did = docs[i].doc;
                String d = String.valueOf(did);
                list.add(d);
                System.out.println("文档id: " + docs[i].doc+" 评分: "+docs[i].score+" 内容: "+document.get("ENTRY_NAME"));
        }
        System.out.println(list);
    }

1
2
分享到:
评论
1 楼 qpshenggui 2011-09-07  
还可以,看看

相关推荐

    lucene IndexSearcher相关和查询示例

    一步一步跟我学习lucene是对近期做lucene索引的总结,大家有问题的话联系本人的Q-Q: 891922381,同时本人新建Q-Q群:106570134(lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,...

    Lucene示例 BM25相似度计算

    在“BM25_Calculator”这个示例中,开发者会展示如何在Lucene中实现BM25相似度计算,并对比其与默认TF-IDF的查询结果。这将帮助新手直观地理解两种方法在实际应用中的差异,并为优化搜索结果提供指导。 总之,...

    lucene实现企业搜索实例

    **Lucene实现企业搜索实例** 在企业环境中,高效、精准的搜索能力是至关重要的,它可以帮助员工快速定位信息,提高工作效率。Apache Lucene是一个开源的全文检索库,它提供了强大的文本搜索功能,能够帮助企业构建...

    Lucene实现全文检索

    1. **多字段搜索**:Lucene支持对多个字段进行同时搜索,通过BooleanQuery或者DisjunctionMaxQuery实现。 2. **模糊搜索**:通过使用PrefixQuery、WildcardQuery或FuzzyQuery,可以实现模糊匹配和通配符查询。 3. ...

    Lucene 索引的简单使用

    Lucene,作为Apache软件基金会的一个开源项目,是Java平台上的全文检索库,它提供了文本检索的核心工具,使得开发者能够快速地在应用程序中实现高级的搜索功能。本篇文章将详细阐述如何使用Lucene来创建和查询索引,...

    用Lucene实现Java里面的搜索引擎

    本篇将深入探讨如何利用Java和Lucene来实现一个搜索引擎。 首先,我们要理解Lucene的基本概念。Lucene是一个纯Java库,其核心功能包括文本分析、索引和搜索。文本分析是将原始文本转化为可搜索的表示形式,通常涉及...

    lucene实现企业产品检索

    在本文中,我们将深入探讨如何使用Lucene来实现一个类似当当网的企业产品检索系统,特别关注如何结合庖丁解牛分词器提升搜索体验。 首先,我们需要理解Lucene的基本工作原理。Lucene的核心是建立索引,将原始文本...

    lucene 实现类似百度搜索

    **Lucene 搜索引擎实现详解** Lucene 是一个开源全文搜索引擎库,由 Apache 软件基金会维护。它提供了一套强大的数据结构和算法,用于高效地存储和检索大量文本数据。通过 Lucene,开发者可以轻松地在自己的应用...

    Lucene时间区间搜索

    总之,Lucene在C#中的时间区间搜索是通过构建和执行RangeQuery来实现的,这涉及到索引构建、查询解析、时间值的转换和比较等多个环节。合理地利用这些技术,可以有效地提升数据检索的效率和准确性。在实际应用中,还...

    lucene查询工具类和IndexSearcher分页查询示例

    总之,利用Lucene的`IndexSearcher`和适当的分页策略,我们可以高效地处理大量数据的搜索请求。这个过程不仅提高了用户体验,也优化了服务器性能。记得在实践中不断调整和优化查询参数,以适应具体的应用场景。

    lucene站内搜索

    总之,Lucene站内搜索提供了一套强大且灵活的搜索框架,通过合理的配置和优化,可以实现高效、准确的站内信息检索。在实际项目中,开发者需要根据具体需求调整Analyzer、索引策略以及查询处理方式,以实现最佳的搜索...

    Lucene.Net 实现全文检索

    Lucene.Net 是一个基于 Apache Lucene 的开源全文搜索引擎库,专为 .NET Framework 平台设计。它提供了一套高级文本搜索程序库,让开发者能够在 .NET 应用程序中轻松实现全文检索功能。在本案例中,我们将在 .Net ...

    lucene包,lucene实现核心代码

    在Java的网络搜索实现中,Lucene扮演着至关重要的角色,它能够帮助开发者快速构建自己的搜索引擎。 在"lucene包"中,我们可以找到Lucene的核心组件和类,这些类负责索引和搜索文档。以下是Lucene实现的核心知识点:...

    C#调用Lucene方法-实现快速搜索

    本篇文章将详细探讨如何在C#环境下利用Lucene实现快速搜索。 首先,让我们了解Lucene的基本概念。Lucene是一个开源的Java库,提供了索引和搜索文本的高级工具。它能够对文本进行分词,建立倒排索引,并支持布尔查询...

    基于LUCENE的搜索引擎的设计与实现源代码

    《基于LUCENE的搜索引擎设计与实现》 搜索引擎是互联网信息时代的重要工具,它使得海量数据的检索变得高效便捷。本项目聚焦于基于Apache LUCENE的搜索引擎设计与实现,LUCENE是一款强大的全文检索库,由Java编写,...

    lucene自定义排序实现

    然后,你可以使用`IndexSearcher`的`searchAfter()`方法或`TopFieldCollector`来实现排序。注意,FieldCache可能会消耗大量内存,因此需要谨慎使用。 2. **CustomScoreQuery排序**:如果你的排序逻辑与查询评分相关...

    用lucene实现的简易搜索引擎

    本文将详细介绍如何利用Lucene来实现一个简易的搜索引擎,同时涵盖其HTML解析功能。 一、Lucene核心组件与工作流程 1. 文档索引:Lucene首先需要对数据进行索引,这个过程包括分词、词性标注、建立倒排索引等步骤...

    lucene开发WEB搜索引擎

    《使用LUCENE.NET构建WEB搜索引擎》 在信息化飞速发展的今天,搜索引擎已经成为人们获取网络信息的重要工具。本文将深入探讨如何使用LUCENE.NET框架来开发一款基于C#的WEB搜索引擎,帮助开发者掌握这一核心技术。 ...

    lucene3.6 搜索例子

    Apache Lucene 是一个开源全文搜索引擎库,为开发者提供了在Java应用程序中实现高效、可扩展的搜索功能的工具。在本篇文章中,我们将深入探讨Lucene 3.6版本中的搜索功能,通过实例解析其核心概念和操作流程。 一、...

    基于struts2实现的lucene搜索引擎

    【基于Struts2实现的Lucene搜索引擎】是一个典型的Java Web应用程序,它整合了Apache的Lucene库,用于在Web环境中构建高效、可扩展的全文检索功能。Lucene是Java领域中广泛使用的开源全文检索库,提供了强大的文本...

Global site tag (gtag.js) - Google Analytics