Lucene 高级搜索

1.文本搜索

  QueryParser支持默认搜索域, 第一个参数为默认搜索域.
  如果在执行parse方法的时候, 查询语法中包含域名则从指定的这个域名中搜索, 如果只有查询的关键字,则从默认搜索域中搜索结果.
  需求描述 : 查询名称中包含华为手机关键字的结果.

// Query query = queryParser.parse("华为手机");// 默认在name域中查
// Query query = queryParser.parse("华为 OR 手机");
Query query = queryParser.parse("华为 AND 手机");

2. 数值范围搜索

  需求描述 : 查询价格大于等于100, 小于等于1000的商品

Query query = DoublePoint.newRangeQuery("price", 100, 1000);

3. 组合搜索

  需求描述 : 查询价格大于等于100, 小于等于1000, 并且名称中不包含华为手机关键字的商品
    BooleanClause.Occur.MUST 必须 相当于and, 并且
    BooleanClause.Occur.MUST_NOT 不必须 相当于not, 非
    BooleanClause.Occur.SHOULD 应该 相当于or, 或者
    注意 : 如果逻辑条件中, 只有MUST_NOT, 或者多个逻辑条件都是MUST_NOT, 无效, 查询不出任何数据.

Query query1 = DoublePoint.newRangeQuery("price", 100, 1000);
Query query2 = queryParser.parse("华为 AND 手机");
// 创建布尔查询对象(组合查询对象)
BooleanQuery.Builder query = new BooleanQuery.Builder();
query.add(query1, BooleanClause.Occur.MUST);
query.add(query2, BooleanClause.Occur.MUST_NOT);
TopDocs topDocs = searcher.search(query.build(), 10);

原文地址:https://www.cnblogs.com/roadlandscape/p/12549426.html

时间: 2024-10-26 09:35:09

Lucene 高级搜索的相关文章

lucene高级搜索

lucene中的提供了一套QueryParser类,用来进行解析搜索请求. 搜索请求就是用户输入关键词后,然后程序去分析关键词,获取用户搜索的真实意图. QueryParser的基本使用: queryParser用来分析用户输入的关键词,将关键词转换为query对象.其构造方法如下: QueryParser parser = new QueryParser(Version.3.0,"title",new StandardAnalyzer(Version3.0)); Query quer

SEO艺术——使用高级搜索 学习体会

前言: 在这个信息大爆炸的时代,网上的信息鱼龙混杂,有的时候我们费尽体力脑力也得不到自己想要的结果.在这个环境下,学习一个高级的搜索技术是一个现代人越来越需要掌握的一门技术和方法.于是,自己利用自己的业余时间,学习SEO的艺术,学会使用高级搜索技巧的同时,也学习影响网站搜索排名的重要因素和提高网站搜索排名的重要方法. 这是一门非常有用的技术,对于一个即将走向IT行业岗位的人来说,学习SEO技术可以大大提高自己对IT这个行业的认识和理解.借来了SEO的艺术这本书,进行初步的学习,现在整理一下高级搜

如何使用GOOGLE高级搜索技巧

原文出处: 新浪博客(未找到原始出处) 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于1999年创立.2000年7月份,Google替代Inktomi成为Yahoo公司的搜索引擎,同年9月份,Google成为中国网易公司的搜索引擎.98年至今,GOOGLE已经获得30多项业界大奖. 二,GOOGLE特色 GOOGLE支持多达132种语言,包括简体中

Google高级搜索

GOOGLE搜索命令:filetype:pdf SEO 返回的就是包含SEO 这个关键词的所有pdf 文件site:是SEO 最熟悉的高级搜索指令,用来搜索某个域名下的所有文件.what's my location/IP 电脑的IP地址.do a barrel roll"或者"Z or R twice",让你的页面旋转360°zerg rush 从页面上方降下很多圆圈"Google Gravity",让你无视牛顿万有引力.Google Sphere&quo

Lucene全文搜索原理与使用

本文中主要是对于Lucene全文搜索的基础原理进行简单的分析,以及Lucene实现全文搜索的流程,之后就是Lucene在Java中的最简单使用:创建索引,查询索引库: 本文中使用的Lucene主要是4.10.3和6.0.0,两个版本的原理相同,但是API的使用并不相同: 1.结构化数据与非结构化数据 2.非结构化数据搜索 3.全文搜索 4.搜索如何实现 5.Lucene实现全文搜索流程 6.Lucene的API使用 1.结构化数据与非结构化数据 结构化数据:指具有固定格式或有限长度的数据,如数据

sublime 高级搜索内容

在开发中时常需要搜索文件里面的里面,不如想找到$video->getTitle() 在哪些文件里面使用到,那么这个时候就需要使用到高级搜索的功能了,操作如下: ctrl+shif+f键 弹出如下框 选择你需要查找的内容,然后确定目录路径,最后点击查找,查找的结果图如下: 速度非常之快, sublime 高级搜索内容,布布扣,bubuko.com

使用Github的高级搜索功能

1. 首先,提供Github高级搜索帮助页面 https://help.github.com/categories/search/ 2. 搜索语法 https://help.github.com/articles/search-syntax/ 比方说,你要搜索心数大于一定数目的开源代码,你可以像下面这样子来操作. 搜索某个时间段之后创建出来的代码. 获取星星数目介于某段区域 设置语言限制的搜索: 一套完整的搜索流程: Omit quotation marks and spaces in quer

值得珍藏:印象笔记Evernote中进行高级搜索的语法分享

印象笔记/Evernote中的搜索我觉得有三大特色: 使用专用语法进行高级搜索 高级版用户支持在pdf.图片中搜索文字 把搜索保存起来,加入快捷方式 今天我想把我搜集的关于在印象笔记Evernote里进行高级搜索的语法共享给大家,大家可以结合自己的需求创建好各种搜索语句,然后保存到快捷方式,提高"用"笔记的效率.例如我的快捷方式了保存了这样的搜索条件: 继续阅读>>

Google高级搜索语法

Google高级搜索语法 Google搜索果真是一个强悍的不得了的搜索引擎,今天转了一些 google的高级搜索语法 希望能帮助到大家. 一.allinanchor: anchor是一处说明性的文字,它标注说明了这个链接可能跳转到其它的网页或跳转到当前网页的不同地方.当我们用allinanchor提交查询的时 候,Google会限制搜索结果必须是那些在anchor文字里包含了我们所有查询关键词的网页.例[ allinanchor: best museums Sydney ] ,提交这个查询,Go