`

Lucene 扩展QueryParse

 
阅读更多

一、QueryParser的功能扩展点

        

//通配符查询	
protected  Query getWildcardQuery(String field,String termStr) throws ParseException{
	
		throw new ParseException("Wildcard not allowed");
	}
//模糊查询
protected Query getFuzzyQuery(String field,String term,float minSimilarity) throws ParseException{
		
		throw new ParseException("Fuzzy queries no allowed");
	}
//boolean查询
	@Override
protected Query getBooleanQuery(
			List<BooleanClause> arg0, boolean arg1) throws ParseException {
		// TODO Auto-generated method stub
		return super.getBooleanQuery(arg0, arg1);
	}
//boolean查询
	@Override
protected Query getBooleanQuery(
			List<BooleanClause> clauses) throws ParseException {
		// TODO Auto-generated method stub
		return super.getBooleanQuery(clauses);
	}
//用户构造termquery对象,或者PhraseQuery
	@Override
protected Query getFieldQuery(String field,
			String queryText, boolean quoted) throws ParseException {
		// TODO Auto-generated method stub
		return super.getFieldQuery(field, queryText, quoted);
	}
//当查询项以*结尾时,该方法构造一个query对象
	@Override
protected  Query getPrefixQuery(String field,
			String termStr) throws ParseException {
		// TODO Auto-generated method stub
		return super.getPrefixQuery(field, termStr);
	}
//范围查询
	@Override
protected  Query getRangeQuery(String arg0,
			String arg1, String arg2, boolean arg3, boolean arg4)
			throws ParseException {
		// TODO Auto-generated method stub
		return super.getRangeQuery(arg0, arg1, arg2, arg3, arg4);
	}

 二、禁用模糊查询和通配查询的小例子

        直接覆盖方法

public class TestQueryParse extends QueryParser{

	public TestQueryParse(Version mathchVersion,String field ,Analyzer analyzer){
		super(mathchVersion, field , analyzer);
	}
    
	protected final Query getWildcardQuery(String field,String termStr) throws ParseException{
	
		throw new ParseException("Wildcard not allowed");
	}
	protected Query getFuzzyQuery(String field,String term,float minSimilarity) throws ParseException{
		
		throw new ParseException("Fuzzy queries no allowed");
	}
	
	
	
}

三、通过构建子类去实现日期范围数字范围查询

 

  Query query =NumericRangeQuery.newIntRange("id", 1, 1, true,true);

NumercRangeQuery 对数字进行范围的一个查询

 

四、对已排序短语进行查询

分享到:
评论

相关推荐

    lucene的应用程序扩展

    **Lucene 应用程序扩展在 ASP.NET 中的实践与应用** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了强大的搜索功能,被广泛应用于各种应用程序,包括网站、数据库和文档管理。在 ASP.NET ...

    lucene-4.7.0全套jar包

    - **Contrib模块**:包含社区贡献的扩展功能,可能包括特殊分词器、搜索建议等,如`lucene-join-4.7.0.jar`、`lucene-suggest-4.7.0.jar`等。 使用这些JAR包时,开发者需要根据具体需求选择合适的模块,并确保它们...

    lucene,lucene教程,lucene讲解

    lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....

    Lucene简介.介绍

    例如,你可以自定义查询分析器、实现删除操作、扩展排序机制,以及利用 Lucene 的 API 接口扩展应用功能。 总之,Lucene 是一个强大且灵活的全文搜索库,为 Java 开发者提供了在各种应用中实现高效全文检索的工具。...

    Lucene in Action 中文版

    第2版 》基于Apache的Lucene 3 0 从Lucene核心 Lucene应用 案例分析3个方面详细系统地介绍了Lucene 包括认识Lucene 建立索引 为应用程序添加搜索功能 高级搜索技术 扩展搜索 使用Tika提取文本 Lucene的高级扩展 ...

    lucene所有的jar包

    “my的jar包”通常指的是开发人员自定义的扩展或封装,可能包含了对Lucene原生功能的增强或者针对特定需求的定制化处理。这些jar包可能包含自定义的分析器、查询解析器、过滤器等,是开发者根据实际项目需求进行的二...

    Lucene全文检索引擎

    除了基本的搜索功能,Lucene还有许多扩展和周边工具,例如Solr和Elasticsearch,它们为Lucene提供了一个更易于部署和管理的服务器环境,支持分布式搜索和更高级的特性,如自动完成、地理位置搜索等。 **四、学习...

    lucene3.0 lucene3.0

    lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0

    lucene 4.7.2 Demo

    在4.7.2版本中,Lucene引入了通用对象搜索,这意味着你可以根据自定义的对象类型进行搜索,这极大地扩展了Lucene的应用场景。 范围搜索是Lucene的另一个亮点,允许用户按数值或日期范围进行过滤。例如,你可以搜索...

    Annotated Lucene 中文版 Lucene源码剖析

    通过阅读《Annotated Lucene 中文版 Lucene源码剖析》,读者不仅能掌握Lucene的基本使用,还能深入了解其底层原理,从而更好地利用和扩展这个强大的搜索工具。 总之,对于想要提升信息检索技术的Java开发者来说,这...

    基于Lucene的Lucene

    本篇文章将深入探讨如何基于Lucene开发一个文件检索系统,以及如何扩展其功能以支持多种文件格式。 ### Lucene核心概念 1. **索引(Index)**: 在Lucene中,索引是将非结构化的文本数据转换为结构化的倒排索引的...

    lucene-query-parser:Lucene查询字符串解析器用作Web api查询或过滤器字符串

    Lucene查询解析器 Lucene查询字符串解析器,用作Web api查询或过滤器字符串。 基本代码来自 使用这种语言的示例查询: name: apple price: &gt; 100 price: &gt; 100 AND active: = 1 product.price: &gt; 100 AND ...

    lucene 2.0 api以及lucene 3.0 api

    Lucene 是一个由 Apache 软件基金会开发的全文搜索引擎库,它为开发者提供了在 Java 应用程序中实现高性能、可扩展的全文搜索功能的能力。Lucene 的 API 设计得相当直观且高效,使得开发者能够快速地集成搜索功能。...

    lucene

    2. 分布式搜索(Distributed Search):通过Solr或Elasticsearch等工具,Lucene可以扩展到分布式环境,处理大规模数据。 3. 高级搜索特性:支持多字段搜索、过滤器查询、自定义评分函数等。 五、实际应用 Lucene常...

    Lucene资料大全(包括Lucene_in_Action书等)

    8. **扩展性**:Lucene可以与其他技术结合,如Solr和Elasticsearch,提供更高级的企业级搜索解决方案。 9. **性能优化**:包括内存管理、磁盘I/O优化、并行处理等策略,以提高搜索性能。 **《Lucene_in_Action》...

    lucene的jar包,欢迎下载

    8. **分布式搜索**:随着数据量的增长,Lucene可以通过Solr或Elasticsearch等扩展,实现分布式搜索,提高性能和容错能力。 9. **社区与版本**:Lucene历经多个版本的迭代,目前最新的稳定版已经发展到8.x,拥有强大...

    Lucene与关系型数据库对比

    Lucene还支持对中文检索的支持,通过扩展其语言词法分析接口实现。同时,Lucene能够支持多用户并发访问,进一步提升了其在网络环境下的实用性。 #### 索引机制 在索引机制上,Lucene与关系型数据库也有着本质的...

    lucene整理文档,lucene详细描述,安装使用过程。

    此外,社区还开发了针对 Lucene 的许多扩展,如中文分词器、地理位置搜索等。 **总结** Lucene 是一个强大的全文搜索引擎,它的灵活性和可扩展性使得它在各种场景下都能发挥重要作用。通过理解 Lucene 的核心概念...

    lucene4.10.4 jar,手动整理,去除其他文件

    9. **扩展性**:Lucene的API设计允许开发者根据需求进行扩展,比如定制分词器、查询解析器或过滤器。 10. **分布式搜索**:通过Solr或Elasticsearch等项目,Lucene可以扩展到分布式环境,支持大规模数据的搜索需求...

Global site tag (gtag.js) - Google Analytics