iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Lucene实现多种高级搜索形式
  • 430
分享到

Lucene实现多种高级搜索形式

lucene搜索ce 2023-05-31 17:05:03 430人浏览 安东尼
摘要

布尔操作符大多数的搜索引擎都会提供布尔操作符让用户可以组合查询,典型的布尔操作符有 AND, OR, NOT。Lucene 支持 5种布尔操作符,分别是 AND, OR, NOT, 加(+), 减(-)。接下来我会讲述每个操作符的用法。OR

布尔操作符

大多数的搜索引擎都会提供布尔操作符让用户可以组合查询,典型的布尔操作符有 AND, OR, NOT。Lucene 支持 5种布尔操作符,分别是 AND, OR, NOT, 加(+), 减(-)。接下来我会讲述每个操作符的用法。

OR: 如果你要搜索含有字符 A 或者 B 的文档,那么就需要使用 OR操作符。需要记住的是,如果你只是简单的用空格将两个关键词分割开,其实在搜索的时候搜索引擎会自动在两个关键词之间加上 OR操作符。例如,“Java OR Lucene” 和 “Java Lucene” 都是搜索含有 Java 或者含有 Lucene的文档。

AND: 如果你需要搜索包含一个以上关键词的文档,那么就需要使用 AND 操作符。例如,“Java AND Lucene”返回所有既包含 Java 又包含 Lucene 的文档。

NOT: Not 操作符使得包含紧跟在 NOT 后面的关键词的文档不会被返回。例如,如果你想搜索所有含有 Java 但不含有Lucene 的文档,你可以使用查询语句 “Java NOT Lucene”。但是你不能只对一个搜索词使用这个操作符,比如,查询语句“NOT Java” 不会返回任何结果。

加号(+): 这个操作符的作用和 AND 差不多,但它只对紧跟着它的一个搜索词起作用。例如,如果你想搜索一定包含Java,但不一定包含 Lucene 的文档,就可以使用查询语句“+Java Lucene”。

减号(-): 这个操作符的功能和 NOT 一样,查询语句 “Java -Lucene” 返回所有包含 Java 但不包含Lucene 的文档。

接下来我们看一下如何利用 Lucene 提供的 api 来实现布尔查询。清单1 显示了如果利用布尔操作符进行查询的过程。

清单1:使用布尔操作符

//Test boolean operatorpublic void testOperator(String indexDirectory) throwsException{Directory dir =FSDirectory.getDirectory(indexDirectory,false);IndexSearcher indexSearcher = new IndexSearcher(dir);String[] searchWords = {"Java AND Lucene", "Java NOT Lucene", "JavaOR Lucene","+Java +Lucene", "+Java -Lucene"};Analyzer language = new StandardAnalyzer();Query query;for(int i = 0; i < searchWords.length; i++){query = QueryParser.parse(searchWords[i], "title", language);Hits results = indexSearcher.search(query);System.out.println(results.length() + "search results for query " +searchWords[i]);}<p></p><p></p>

--结束END--

本文标题: Lucene实现多种高级搜索形式

本文链接: https://www.lsjlt.com/news/226999.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Lucene实现多种高级搜索形式
    布尔操作符大多数的搜索引擎都会提供布尔操作符让用户可以组合查询,典型的布尔操作符有 AND, OR, NOT。Lucene 支持 5种布尔操作符,分别是 AND, OR, NOT, 加(+), 减(-)。接下来我会讲述每个操作符的用法。OR...
    99+
    2023-05-31
    lucene 搜索 ce
  • python高级搜索实现高效搜索GitHub资源
    目录搜索资源通过 in 关键字搜索通过 stars、fork 数量搜索按照范围查询按创建、更新时间搜索搜索代码按文件内容、路径搜索在某个资源下搜索按语言搜索按文件名、大小、扩展名搜索...
    99+
    2024-04-02
  • python高级搜索怎么实现高效搜索GitHub资源
    这篇文章主要讲解了“python高级搜索怎么实现高效搜索GitHub资源”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python高级搜索怎么实现高效搜索GitHub资源”吧!搜索资源通过 ...
    99+
    2023-06-25
  • 利用Lucene如何实现布尔搜索功能
    本篇文章给大家分享的是有关利用Lucene如何实现布尔搜索功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是luceneLucene是apache软件基金会jakarta...
    99+
    2023-05-31
    lucene 布尔搜索
  • Android Flutter实现搜索的三种方式详解
    目录示例 1 :使用搜索表单创建全屏模式编码示例 2:AppBar 内的搜索字段(最常见于娱乐应用程序)编码示例 3:搜索字段和 SliverAppBar编码结论示例 1 :使用搜索...
    99+
    2022-11-13
    Android Flutter搜索 Flutter搜索 Android 搜索
  • SpringBoot 整合 ElasticSearch操作各种高级查询搜索
    目录一、简介二、代码实践三、小结一、简介 在上篇​ SpringBoot 整合 ElasticSearch​​​ 文章中,我们详细的介绍了 ElasticSearch 的索引和文档的...
    99+
    2024-04-02
  • lucene全文搜索怎么实现数据库的like匹配效果
    本篇内容介绍了“lucene全文搜索怎么实现数据库的like匹配效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一般情况下,全文搜索是通过...
    99+
    2023-06-26
  • java多态实现的形式有哪几种
    Java多态的实现形式主要有以下几种:1. 方法重写(Override):子类重写父类的方法,通过父类引用指向子类对象时,根据实际引...
    99+
    2023-09-27
    java
  • android RecycleView实现多级树形列表
    本文实例为大家分享了android RecycleView实现多级树形列表的具体代码,供大家参考,具体内容如下 实现多级树状列表: 1. Node.java public cla...
    99+
    2024-04-02
  • RiSearch PHP 实现高效搜索的索引维护技巧
    摘要:RiSearch 是一种高效的全文搜索引擎,它基于 Redis 实现。在 PHP 中使用 RiSearch 实现高效的搜索功能时,我们需要掌握一些索引维护技巧。本文将介绍 RiSearch 的基本原理,并给出一些实际的代码示例,帮助读...
    99+
    2023-10-21
    PHP 搜索技巧 RiSearch
  • react如何实现搜索关键字高亮
    这篇文章主要讲解了“react如何实现搜索关键字高亮”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何实现搜索关键字高亮”吧!react实现搜索关键字高亮的方法:1、利用正则从列表...
    99+
    2023-07-04
  • python实现二叉搜索树的四种方法
    目录树的介绍二叉搜索树列举几种Python中几种常见的实现方式:1.使用类和递归函数实现2.使用列表实现3.使用字典实现4.使用堆栈实现树的介绍 树不同于链表或哈希表,是一种非线性数...
    99+
    2023-05-15
    python 二叉搜索树
  • react怎么实现搜索关键字高亮
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现搜索关键字高亮?React实现快速搜索并且关键字高亮需求:点击搜索按钮,弹出模糊匹配列表。下拉列表选择选项,点击后跳转相应页面关键字所在...
    99+
    2023-05-14
    关键字 React
  • Android实现高亮搜索功能的示例
    目录首先看效果图:使用方法:1、普通场景使用2、在DataBinding中使用首先看效果图: 整词高亮: 分词高亮: 下面贴上我封的方法 fun stringToHig...
    99+
    2024-04-02
  • Pyqt5怎么实现多线程文件搜索
    这篇文章将为大家详细讲解有关Pyqt5怎么实现多线程文件搜索,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我采用的是pyqt5,所以需要先安装Pyqt5模块直接cmd命令输入pip instal...
    99+
    2023-06-14
  • VUE递归树形实现多级列表
    本文实例为大家分享了VUE递归树形实现多级列表,供大家参考,具体内容如下 什么是递归 简单来说就是在组件中内使用组件本身。 为什么要用递归? 如果出现很多下拉菜单,同级,分级数据,层...
    99+
    2024-04-02
  • Java对象如何在HTTP索引中实现高效搜索?
    HTTP索引是一种非常常见的搜索方式,它通过HTTP协议进行通信,将索引数据存储在服务器上,从而可以快速地查询相关信息。但是,如果要实现高效搜索,就需要对Java对象进行一些优化。 一、Java对象的序列化 首先,Java对象需要进行序列...
    99+
    2023-09-13
    对象 http 索引
  • Redis如何实现分布式搜索功能
    Redis是一款高性能的NoSQL数据库,其提供了丰富的功能和数据结构,包括字符串、哈希表、列表、集合和有序集合等。除此之外,Redis还提供了一些高级功能,例如发布订阅、Lua脚本和事务等。其中,Redis的分布式搜索功能非常实用,可以帮...
    99+
    2023-11-08
    实现方式 搜索功能 Redis分布式
  • android RecycleView如何实现多级树形列表
    这篇文章给大家分享的是有关android RecycleView如何实现多级树形列表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文实例为大家分享了android RecycleView实现多级树形列表的具体代...
    99+
    2023-06-15
  • Pyqt5 实现多线程文件搜索的案例
    我学Java的时候也用Swing做了一个文件搜索的小程序,但界面真的挺丑的,现在学了点python,感觉python是最简单的语言,没有之一。 (大家没事都可以来学的,真的很简单有趣...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作