`
deepfuture
  • 浏览: 4400763 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80078
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70058
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103363
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285837
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15015
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67580
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32155
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45993
社区版块
存档分类
最新评论

lucene-booleanquery组合查询

阅读更多

当parse函数中指定多个项时,QueryParser能很方便地构建BooleanQuery对象。使用圆括号分组,通过指定的-、+、AND、OR以及NOT这些操作符。

允许进行逻辑的AND、OR或NOT组合,通过BooleanQuery的add方法将一个查询子句增加到某个BooleanQuery对象中:

public void add(Query query,boolean required,booleanprohibited)

 

Required

False

true

Prohibited

False

该子句是可选(逻辑或)

该子句是必须匹配(逻辑与)

True

该子句是不允许匹配的(逻辑非)

 

TermQuery searchingBooks=new TermQuery(newTerm("subject","search"));

RangeQuery currentBooks=new RangeQuery(newTerm("pubmonth","200401"),new Term("pubmonth","200412"),true);

BooleanQuery currentsearchingBooks=new BooleanQuery();

currentSearchingBooks.add(searchingBooks,true,false);

currentSearchingBooks.add(currentBooks,true,false);

IndexSearcher searcher=new IndexSearcher(directory);

Hits hits=searcher.search(currentSearchingBooks);

分享到:
评论

相关推荐

    lucene-3.5.0.jar

    - **Query**:用户输入的搜索条件被转化为Query对象,常见的有TermQuery(单个词查询)、BooleanQuery(布尔逻辑组合查询)和PhraseQuery(短语查询)等。 - **TF-IDF**:Lucene使用TF-IDF(词频-逆文档频率)算法...

    lucene-2.9.3-src.zip

    - **查询执行**:使用Query对象(如TermQuery、BooleanQuery)和IndexSearcher,配合HitCollector或TopDocs来获取结果。 - **结果处理**:Hit、ScoreDoc等类用于表示搜索结果,可以获取文档ID、得分等信息。 6. *...

    自己整理的 最新的 lucene-3.0.1_api

    5. **Query**:表示用户输入的查询条件,如TermQuery(单个词)、BooleanQuery(布尔组合)和PhraseQuery(短语)等。 6. **Document**:表示索引中的一个条目,可以包含多个Field,每个Field有特定的名称和值,...

    lucene-2.3.0-src

    2. **Query**:表示查询表达式,如`TermQuery`对应单个词项,`BooleanQuery`对应布尔组合。 3. **IndexWriter**:用于创建和更新索引,如添加、删除和修改文档。 4. **IndexReader**:用于读取已建立的索引,获取...

    lucene-4.6.0官方文档

    TermQuery匹配单个词项,PhraseQuery用于短语匹配,BooleanQuery可以组合多个查询条件。查询执行后,通过Scorer和Collector进行文档评分和收集,决定哪些文档应该返回给用户。 5. **高级特性** Lucene还提供了高级...

    lucene-in-action-clone:lucene-in-action 一书中源代码的克隆

    例如,TermQuery(词项查询)用于精确匹配,BooleanQuery(布尔查询)用于组合多个查询条件,PhraseQuery(短语查询)用于查找特定顺序的词组。 在实际应用中,Lucene常与其他技术结合,如Solr和Elasticsearch,...

    lucene源码---官网最新下载

    - **Query**: Lucene 支持多种查询类型,如 TermQuery(匹配单个词项)、BooleanQuery(组合多个查询)、PhraseQuery(匹配短语)等。查询对象表示了用户想要查找的信息模式。 - **Scoring**: Lucene 使用 TF-IDF...

    lucene4.10.3的api的chm合集

    `lucene-queries-4.10.3.CHM`详细阐述了Lucene的各种查询类型和构造方法,如TermQuery、BooleanQuery、PhraseQuery等,以及如何组合这些查询以实现复杂的检索策略。 `lucene-spatial-4.10.3.CHM`专注于地理空间搜索...

    lucene 最新版本所有jar包

    2. **Lucene-Queries**: 提供了高级查询结构,例如BooleanQuery、PhraseQuery、WildcardQuery等。 3. **Lucene-Suggest**: 该模块提供了自动补全和建议功能,用于提升用户体验。 4. **Lucene-Spatial**: 支持地理...

    Lucene3.0之查询类型详解

    - **BooleanQuery**:用于组合多个查询条件,支持AND、OR、NOT等布尔运算。通过添加多个TermQuery或其他Query子类实例到BooleanQuery来构建复杂的逻辑查询。 举例来说,以下是如何创建一个"星期一"和"五月一日"的...

    lucene例子

    2. **BooleanQuery**:可以组合多个Query对象,通过AND、OR、NOT等布尔运算符进行多条件查询。 3. **PrefixQuery**、**WildcardQuery** 和 **RegexQuery**:这些查询类支持模糊匹配,如前缀查询、通配符查询和正则...

    lucene创建修改删除组合条件查询

    在本主题中,我们将深入探讨如何使用Lucene进行创建、删除、修改和组合条件查询,以及如何实现类似MySQL中的LIKE、IN、OR和时间范围条件查询。 首先,**创建索引**是使用Lucene的第一步。创建索引涉及到读取数据源...

    lucene 多字段查询+文字高亮显示

    例如,可以创建一个BooleanQuery,将各个字段的Query子句以AND、OR或NOT的关系组合起来。此外,还可以使用MultiFieldQueryParser,它允许指定一组字段,并自动处理这些字段上的查询。 接着,我们探讨“文字高亮显示...

    lucene笔记

    例如,`TermQuery`用于根据单个词进行搜索,`BooleanQuery`用于组合多个查询条件。 **6.2 通过QueryParser创建查询对象** QueryParser是一个强大的工具,它可以根据用户的自然语言输入解析出相应的查询对象。这...

    lucene高级智能查询小案例

    例如,我们可以使用TermQuery来查找特定关键词,使用BooleanQuery组合多个条件,或者使用WildcardQuery进行通配符查询。在高级查询中,我们可能会利用FuzzyQuery进行模糊匹配,或者使用PrefixQuery进行前缀搜索,...

    Lucene 3.6 学习笔记

    - **多条件查询**:`BooleanQuery`组合多个查询条件。 - **短语查询**:`PhraseQuery`查找文档中包含特定顺序词汇的短语。 - **模糊查询**:`FuzzyQuery`允许搜索近似匹配的词。 #### 3.3 QueryParser - 自动生成`...

    Lucene在web项目中的应用

    - 布尔查询(BooleanQuery):组合多个查询条件,如AND、OR、NOT。 - 范围查询(RangeQuery):查找在指定范围内的结果。 - 通配符查询(WildcardQuery):支持星号(*)和问号(?)作为通配符。 执行搜索后,Lucene...

    Lucene查询语法

    组合查询允许将多个查询组合在一起,形成更复杂的查询表达式。 ##### 1.9 查询过滤 查询过滤用于在返回结果之前先进行过滤操作,确保结果集满足特定条件。 #### 三、字符串构造查询 字符串构造查询是一种简单直观...

    lucene部分常用代码

    在上面的代码中,我们使用BooleanQuery来组合多个Query,从而实现多条件搜索。 过滤 Lucene中的Filter可以对搜索结果进行过滤,从而获得更小范围内更精确的结果。下面是一个示例代码: ```java filter filter = ...

    Lucene 搜索方法(布尔搜索)

    Lucene是一个高性能、全文本搜索库,它提供了强大的信息检索功能,而布尔搜索是其中一种常用且灵活的搜索方式,允许用户通过逻辑运算符(如AND、OR、NOT等)来组合多个查询条件,以精确地控制搜索结果。 描述部分...

Global site tag (gtag.js) - Google Analytics