`
stta04
  • 浏览: 114857 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

lucene日期索引与搜索

阅读更多

工具类里:
TimestampConverter类里的方法:
/**
* lucene建日期索引转换
* @param timestamp
* @return
*/
public String timestampToShortStr2(Timestamp timestamp){
Date date = new Date(timestamp.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(date);
}
/**
* 当前日期作为结束日期进行日期范围搜索时格式转换
* @param date
* @return
*/
public String timestampToShortStr2(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(date);
}


建索引类里:
TimestampConverter converter = new TimestampConverter();
String docDate = converter.timestampToShortStr2(documentInfo.getCreatedate());
doc.add(new Field("docDate", docDate , Field.Store.YES, Field.Index.TOKENIZED));

搜索类里:
//日期范围
String createDateStart = docSearchParam.getSearchCDateStart();
String createDateEnd = docSearchParam.getSearchCDateEnd();
if(!(NullHelper.nullOrBlank(createDateStart)&&NullHelper.nullOrBlank(createDateEnd))){
if(NullHelper.nullOrBlank(createDateStart)){
createDateStart = "20000101";
}else if(NullHelper.nullOrBlank(createDateEnd)){
//设置当前日期为结束日期
Date now = new Date();
TimestampConverter converter = new TimestampConverter();
createDateEnd = converter.timestampToShortStr2(now);
}
Term start = new Term("docDate",createDateStart.replace("-", ""));
Term end = new Term("docDate",createDateEnd.replace("-", ""));

Query rangeQuery = new RangeQuery(start, end, true);
booleanquery.add(rangeQuery, BooleanClause.Occur.MUST);
}

分享到:
评论

相关推荐

    Lucene3.0创建索引

    ### Lucene3.0创建索引 在Lucene3.0中创建索引是一个关键功能,可以帮助用户快速地检索和管理大量的文本数据。本篇文章将详细介绍如何使用Lucene3.0来创建索引,并通过一个具体的例子来演示整个过程。 #### 一、...

    Lucene 索引的简单使用

    - **评分和排序**:Lucene使用TF-IDF算法计算文档与查询的相关性,用于确定搜索结果的排序。 - **更新和删除**:使用IndexWriter可以更新已有文档,或通过ID删除文档。 - **多线程索引**:通过控制IndexWriter的...

    lucene索引结构原理.docx

    本文将深入探讨Lucene的核心概念、与其他系统的比较以及数据搜索的方法。 1. **Lucene 与数据库的比较** - **索引数据源**:在数据库中,数据以记录(Record)形式存储,每个记录包含多个字段(Field)。当执行SQL...

    lucene索引文件格式介绍

    Lucene 是一个流行的开源全文搜索引擎库,其核心功能之一就是构建高效的索引。索引文件格式是Lucene实现快速搜索的关键。以下是对Lucene索引文件格式的详细说明。 首先,我们要理解Lucene索引的基本结构。一个...

    lucene 4.7.2 Demo

    范围搜索是Lucene的另一个亮点,允许用户按数值或日期范围进行过滤。例如,你可以搜索价格在特定区间内的商品,或者查找某个时间段内的新闻。这需要利用RangeQuery或NumericRangeQuery类来构建相应的查询条件。 ...

    Lucene索引文件查看工具lukeall4.7.1

    2. **字段浏览**:LukeAll可以展示索引中的所有字段,包括字段名、字段类型(如文本、数值或日期)、是否可搜索、是否存储等属性。这对于理解和调整索引策略至关重要,因为它揭示了文档数据如何被组织和处理。 3. *...

    lucene全文索引原理

    对于大型数据集,Lucene可以通过Solr或Elasticsearch等工具实现分布式搜索,将索引分散在多台机器上,提高检索效率和容错能力。 了解并掌握Lucene的这些原理,有助于开发者构建高效、灵活的全文搜索应用,满足各种...

    lucene索引

    本文将深入探讨Lucene的核心概念、索引过程以及如何利用其进行高效的全文搜索。 1. Lucene的基本概念 - **倒排索引**:Lucene的核心是倒排索引,这是一种数据结构,可以快速定位到文档中包含特定词的位置。在倒排...

    lucene高级搜索进阶项目_04

    5. **过滤与排序**:除了返回最相关的搜索结果,我们还需要对结果进行过滤(例如,按日期或评分排序),这可以通过Filter和Sort类来实现。 6. ** faceted search(面式搜索)**:在大型信息集合中,提供分类浏览和...

    Lucene时间区间搜索

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

    lucene索引入门[归类].pdf

    1. 索引模块(Index): Lucene 的索引模块是整个搜索引擎的核心,负责将数据源转换为可搜索的索引结构。索引模块的主要功能是将数据源解析成 Document 对象,然后将其写入索引中。 2. 检索模块(Search): Lucene...

    lucene 实现类似百度搜索

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

    Annotated Lucene 中文版 Lucene源码剖析

    查询对象则用于构造用户输入的搜索条件,与索引交互以找到匹配的文档。 在源码层面,Lucene的索引构建涉及Analyzer、Tokenizer、TokenStream和Filter等组件。Analyzer负责将原始文本分割成有意义的单元(词语),...

    lucene-4.6.0全套jar包

    Lucene 4.6.0是其发展历史中的一个重要版本,对之前的版本进行了诸多改进和优化,使得在处理大规模数据索引和搜索时表现更佳。 一、Lucene核心概念 1. 文档(Document):在Lucene中,文档是搜索的基本单位,可以...

    全文搜索-Lucene

    Lucene 实现了索引和搜索的核心算法,包括倒排索引、TF-IDF(词频-逆文档频率)等,使得开发者能够快速构建自己的全文检索系统。 **一、Lucene 的核心概念** 1. **倒排索引(Inverted Index)**:这是 Lucene 最...

    jsp+servlet+jdbc+lucene 搜索引擎

    在本项目中,Lucene被用来构建和管理索引,包括初始化索引、实时索引、关键字索引、数字及日期索引等。Lucene支持高效的全文检索,具备分词、模糊匹配、高亮显示等功能,极大地提高了搜索引擎的性能。 **项目结构与...

    Lucene搜索引擎开发权威经典(附盘源码)【于天恩】.zip

    高级话题可能包括分布式搜索、Lucene与Hadoop的集成,以实现大规模数据的处理,以及如何使用Lucene的高级特性,如faceted search(分面搜索)、highlighting(高亮显示)和 SpellChecker(拼写检查)。此外,书中的...

    Lucene源码

    作为一款Java实现的全文搜索引擎架构,Lucene 提供了完整的索引和查询引擎,使得开发者能够快速、有效地在大量数据中进行文本搜索。 ### Lucene 的核心组件 1. **索引(Indexing)**: Lucene 的索引过程将文档内容...

    基于Lucene的桌面搜索软件

    Lucene提供了完整的文本索引及搜索能力,无需任何第三方程序支持。它是一个用Java编写的全文检索引擎,具有强大的文本分析能力,可以实现快速的全文搜索。 #### 桌面搜索软件背景 随着个人电脑上数据量的不断增长...

Global site tag (gtag.js) - Google Analytics