`

Luence检索之转载

 
阅读更多

转载自:http://sunlongan666.iteye.com/blog/580456
     在用Lucene实现全站搜索的过程中,很可能会遇到这样的问题,只所有某种特定的信息资源,而不是全部.如:某综合性站点,有新闻,产品,论坛,Blog,视频等资源,而搜索的时候先选一个类型(下拉列表),再输入关键字进行搜索(当然,这种情况可以直接用sql来实现,我们这里是基于lucene的实现考虑).这种情况下,就要用到and和or的查询了.这里假设索引已经建立好了(如何建立索引请参考:http://www.iteye.com/topic/125599),索引字段为title(标题), type(资源类型,表示新闻还是产品,product为产品,news表新闻),则实现方法如下: 

Java代码  收藏代码
  1. /**   
  2. * 根据信息分类和关键词进行查询   
  3. * @param type,资源的类型,其值为news或product   
  4. * @param searchKey,搜索的关键字   
  5. * @return Hits   
  6. */    
  7. public Hits executeSearch(String type,String keyword)     
  8. {     
  9.   Hits result = null;     
  10.   if(type != null && !type.equals("") && keyword != null && !keyword.equals(""))     
  11.   {     
  12.     try      
  13.     {     
  14.       //根据关键字构造一个数组     
  15.       String[] key = new String[]{keyword,type};     
  16.       //同时声明一个与之对应的字段数组     
  17.       //意思是 标题中含有keyword的并且资源类型是type 的 信息被检索出来。
  18.       String[] fields = {"title","type"};     
  19.       //声明BooleanClause.Occur[]数组,它表示多个条件之间的关系     
  20.       BooleanClause.Occur[] flags=new BooleanClause.Occur[]{BooleanClause.Occur.MUST,BooleanClause.Occur.MUST};     
  21.       ChineseAnalyzer analyzer = new ChineseAnalyzer();     
  22.       //用MultiFieldQueryParser得到query对象     
  23.       Query query = MultiFieldQueryParser.parse(key, fields, flags, analyzer);     
  24.       //c:/index表示我们的索引文件所在的目录     
  25.       IndexSearcher searcher = new IndexSearcher("c:/index");     
  26.       //查询结果     
  27.       result = searcher.search(query);     
  28.     } catch (Exception e)     
  29.     {     
  30.       e.printStackTrace();     
  31.     }     
  32.   }     
  33.   return result;     
  34. }    


这里需要注意的就是BooleanClause.Occur[]数组,它表示多个条件之间的关系,BooleanClause.Occur.MUST表示and,BooleanClause.Occur.MUST_NOT表示not,BooleanClause.Occur.SHOULD表示or.

分享到:
评论

相关推荐

    Lucene搜索例子

    Lucene是Apache软件基金会的开源全文搜索引擎库,它为开发者提供了在各种应用程序中实现全文检索功能的工具集。Lucene的核心功能包括文本分析、索引创建、查询解析和结果排序。本示例将展示如何在Web环境中使用...

    Luence.net搜索小程序

    在信息技术日益发达的今天,搜索引擎已成为数据挖掘与信息检索的重要工具。本文将深入探讨一款基于.NET平台的搜索引擎——Luence.net,它以其高效、灵活的特点,为开发者提供了构建搜索功能的强大支持。通过"Luence...

    luence客户端测试软件luke

    1. **Apache Lucene**:Lucene是一个开源的全文检索库,提供强大的搜索功能。它实现了索引、搜索、高亮显示搜索结果等核心功能,并为开发者提供了丰富的API。 2. **Luke工具**:Luke是用于查看、操作和测试Lucene...

    人工智能-项目实践-搜索引擎-基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索

    《构建垂直搜索引擎:从爬虫到Lucene检索》 在当今信息爆炸的时代,搜索引擎成为了我们获取知识、解决问题的重要工具。本项目实践旨在介绍如何构建一个基础的垂直搜索引擎,该搜索引擎专注于某一特定领域的信息检索...

    Luence搜索Demo

    本文将深入探讨基于.NET平台的Luence.Net搜索Demo,帮助读者理解如何利用Luence进行高效的数据检索。 首先,我们要明白Luence是什么。Luence是Apache Lucene的.NET版本,它提供了丰富的API和工具,用于构建强大的...

    Luence和ElasticSearch面试准备.docx

    《Luence和ElasticSearch面试准备》 Lucene和ElasticSearch是两个在全文搜索引擎领域中广泛使用的开源工具。Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格...

    VerticalSearcher:基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索

    本文将探讨一个名为“VerticalSearcher”的项目,该项目实现了基本的网络爬虫功能,并利用Apache Lucene进行数据检索,为开发者提供了构建垂直搜索引擎的基础。 首先,我们来看“VerticalSearcher”项目的核心部分...

    Luence原理及源码分析

    lucene 原理与分析,底层源码解析,应用场景及实践,相关配置

    获取全部Luence数据

    ### 获取全部Luence数据 #### 知识点详解 **Lucene** 是一个高性能、全功能的文本搜索引擎库。在本文档中,我们将探讨如何通过Lucene获取索引中的所有文档,包括创建索引、查询索引以及遍历所有文档的具体步骤。 ...

    IKAnalyzer和luence压缩包大全

    IKAnalyzer是一个专门针对中文的分词工具,而Lucene则是一个全文检索框架。这里我们深入探讨这两个组件以及它们的关联。 **IKAnalyzer** 是一个高性能的Java实现的中文分词器,特别适合于搜索引擎或者文本分析场景...

    luence搜索

    Lucene,作为一个开源的全文搜索引擎库,被广泛应用于各种信息检索系统中。它提供了一套高效、灵活的文本搜索解决方案,使得开发者能够快速地在大量数据中实现高效的全文检索功能。本文将深入探讨Lucene的工作原理、...

    Luence简单实例

    在"Luence简单实例"中,我们可能会看到以下步骤的Java代码实现: 1. **创建索引**: 首先,需要创建一个`IndexWriter`对象,设置好索引目录和分析器。接着,通过`Document`对象添加字段,如`add(new Field("content...

    luence4.6例子

    Apache Lucene 是一个开源的全文检索库,由Java编写,为开发者提供了强大的文本搜索功能。在深入理解Lucene 4.6的源代码之前,我们首先需要了解全文搜索引擎的基本原理。全文搜索引擎通过索引文档中的关键词来实现...

    Luence+Ikanalyzer+stopword+dic

    Ikanalyzer的优秀之处在于它能较好地处理中文的词语边界问题,如识别出成语、短语等。 接下来,我们讨论一下停用词。停用词是指在搜索和分析过程中通常被忽略的常见词汇,如“的”、“和”、“在”等。这些词在...

    luence索引例子

    标题 "luence索引例子" 暗示我们要探讨的是Lucene,一个广泛使用的全文搜索引擎库,它在处理大量文本数据时提供了高效的检索能力。在这个例子中,我们将深入理解如何利用Lucene创建索引来优化数据库记录的搜索性能。...

    Luence in Action 中英文pdf 版

    6. **性能优化**:如何提升Lucene的性能也是本书的重点,包括内存管理、缓存策略、倒排索引的压缩技术,以及如何通过JVM调优来提高检索速度。 7. **整合应用**:书中展示了如何将Lucene集成到现有的Java应用中,...

    前后端分离的使用spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码

    在本系统中,Lucene可能被用来实现对知识库内容的快速检索和高相关性的搜索结果。通过索引和分析文本数据,用户可以高效地查找所需的信息。 最后,Spring框架是整个项目的基石,它提供了一种统一的方式来管理对象的...

    Luence的与盘古分词的使用软件

    在信息检索、自然语言处理等领域,分词是基础步骤,因为它能让计算机理解并处理中文文本。盘古分词提供了高效、准确的分词服务,对于C#开发者来说,可以通过API接口将其集成到项目中。 描述中提到的“VS2013”是指...

    lucene-5.5.3对应的源码文件

    它为Java开发者提供了一种高性能、可扩展的信息检索服务,广泛应用于搜索引擎、信息检索系统等领域。在本文中,我们将深入探讨Lucene 5.5.3版本的源码,解析其核心设计理念与实现机制。 一、Lucene的基本架构 1. ...

    基于ajax与luence构建搜索引擎的设计和实现论文.doc

    搜索引擎技术的发展可以追溯到 20 世纪 90 年代,随着互联网的普及和搜索引擎技术的成熟,搜索引擎已经成为互联网上最重要的应用之一。搜索引擎技术的发展历程可以分为三个阶段:第一阶段是早期的搜索引擎技术,包括...

Global site tag (gtag.js) - Google Analytics