`
kfcman
  • 浏览: 396922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

lucene3.0 中BooleanQuery 的使用

 
阅读更多
lucene3.0中BooleanQuery 实现与或的复合搜索 .
BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合:

1.MUST和MUST:取得连个查询子句的交集。
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。
3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
6.MUST_NOT和MUST_NOT:无意义,检索无结果。

       private static void search(String str) throws Exception {

              IndexReader reader = IndexReader.open(FSDirectory.open(new File(

                            INDEX_DIR)), true); // only searching,

              // so read-only=true

              Searcher searcher = new IndexSearcher(reader);

              Analyzer analyzer = new IKAnalyzer();

              String field = "contents";

              QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field,

                            analyzer);
              Query query = null;

              str = getKeyWord(str);

              query = parser.parse(str);

              BooleanQuery q = new BooleanQuery();

              q.add(query, BooleanClause.Occur.MUST);

              QueryParser parser2 = new QueryParser(Version.LUCENE_CURRENT, "keyword",  analyzer);

              Query q2 = parser2.parse(str);

//            q2.setBoost(10);
              q.add(q2, BooleanClause.Occur.SHOULD);

               TopScoreDocCollector collector = TopScoreDocCollector.create(10, false);
              searcher.search(q, collector);

              ScoreDoc[] hits = collector.topDocs().scoreDocs;

       }
分享到:
评论

相关推荐

    Lucene3.0之查询类型详解

    在Lucene3.0中,查询处理是一个关键环节,涉及多种查询方式和理论模型。以下是对这些概念的详细解释: 1. **查询方式**: - **顺序查询**:是最简单的查询方式,直接遍历索引,效率较低。 - **索引查询**:基于预...

    Lucene 3.0 原理与代码分析完整版

    通过对《Lucene 3.0 原理与代码分析完整版》的学习,开发者不仅可以理解Lucene的工作原理,还能掌握如何定制化Lucene以满足特定需求,从而在实际项目中充分利用其强大功能。这本书是深入研究和应用Lucene不可或缺的...

    lucene 3.0 API 中文帮助文档

    本篇将深入探讨Lucene 3.0 API的中文帮助文档,帮助开发者更好地理解和使用这个强大的搜索引擎。 首先,Lucene 3.0 API是Lucene的一个重要版本,它包含了丰富的类和接口,用于索引、查询和管理文本数据。这个版本的...

    Lucene3.0做的文件搜索

    **Lucene3.0文件搜索概述** Lucene是Apache软件基金会的一个开源全文搜索引擎库,它提供了高级的文本分析和索引功能,使开发者能够轻松地在应用中实现强大的搜索功能。在Lucene 3.0版本中,这个功能得到了进一步...

    lucene3.0基础实例

    本篇文章将深入探讨Lucene 3.0的基础实例,帮助读者理解和掌握如何使用这个强大的工具。 一、Lucene简介 Lucene是一个高性能、全文本搜索库,它提供了基本的索引和搜索功能,同时也支持高级查询语法。在Lucene 3.0...

    lucene3.0-api.CHM

    本指南主要关注的是Lucene 3.0版本的API,这是一个强大的工具集,用于在Java环境中构建全文搜索引擎。 一、Lucene核心概念 1. 文档(Document):在Lucene中,文档是信息的基本单位,它由一系列字段(Field)组成...

    Lucene3.0_pdf

    《Lucene3.0原理与代码分析》是针对搜索引擎库Lucene 3.0版本的一份详尽解析,旨在帮助读者深入理解其内部工作机制和实现细节。Lucene是一款高性能、全文检索库,广泛应用于各类信息检索系统。下面将围绕Lucene的...

    lucene 3.0 例子

    2. **分析器(Analyzer)**:Lucene 3.0中,分析器负责处理文本的预处理。例如,可以使用`StandardAnalyzer`来处理英文文本,它会进行分词、去除标点符号和大小写转换。 3. **查询(Query)**:学习如何创建查询...

    Apache Lucene3.0 入门实例介绍

    这个入门实例将引导我们了解如何使用Lucene 3.0版本进行基本的索引和搜索操作。以下是对Lucene 3.0关键知识点的详细讲解: 1. **Lucene的架构**: Lucene的核心组件包括文档(Document)、字段(Field)、索引...

    Lucene_3.0_原理与代码分析

    Lucene 提供了多种查询对象,如 `TermQuery`、`BooleanQuery`、`PhraseQuery` 等,它们分别对应于不同类型的查询。 #### 十、Lucene 的分词器(Analyzer) 分词器是 Lucene 中的核心组件之一,用于将文本分解成...

    Lucene+3.0+原理与代码分析完整版

    ### Lucene 3.0 原理与代码分析知识点概览 #### 一、全文检索的基本原理 **全文检索**是一种从文档集合中找出包含指定词汇的技术。它能够处理大量的非结构化文本数据,例如电子邮件、网页内容、文档等,并提供高效...

    中英文版 lucene in action (pdf 版,附随书源码)

    5. **查询解析与执行**:解释了如何构造查询表达式,使用QueryParser和BooleanQuery等工具,以及查询执行的流程。 6. **结果排序与相关性**:阐述了如何自定义评分函数以实现更精确的排序,以及调整相关性算法来...

    Lucene3总体图_建索引_查询_数据库索引[参考].pdf

    在Lucene 3.0版本中,其架构主要分为对外接口、索引核心以及基础结构封装三大部分,共包含八个模块。 1. **Analysis**: - 分析器(Analyzer):处理输入的查询语句和文档内容,如StandardAnalyzer是最常用的,...

    lucene 资料全集

    所提供的文档资源,如《Lucene学习总结之一》、《传智播客Lucene3.0课程》、《JAVA_Lucene_in_Action教程完整版》以及《Lucene_in_Action(中文版)》,都是深入了解 Lucene 的宝贵资料,建议结合这些材料进行系统...

    全文搜索引擎lucene入门

    - 构建`Query`对象,如使用`BooleanQuery`或`TermQuery`。 - 使用`IndexSearcher`的`search()`方法执行查询,返回`TopDocs`对象。 - 遍历`ScoreDoc`,获取匹配文档及其相关性分数。 4. **优化和维护**:Lucene...

Global site tag (gtag.js) - Google Analytics