Lucene 的检索方式

Lucene 搜索方法(短语搜索) NULL 博文链接:https://baobeituping.iteye.com/blog/847043 立即下载

TermQuery

这个检索通常查找文档中唯一数据的字段(在更新索引时特别有用),一般这个字段使用Field.Index.NOT_ANALYZED方式保存索引(但并不意味着所有Field.Index.NOT_ANALYZED方式保存索引的字段有唯一值).

1Term t = new Term("contents", "java");
2Query query = new TermQuery(t);
3//最终表达式就是contents:java

TermRangeQuery

范围检索,可以返回在两个单词之间的数据.

1TermRangeQuery query = new TermRangeQuery("title", "d", "j", true, true);
2//或者
3TermRangeQuery query = new TermRangeQuery("title", "tim", "tom", true, true);
4//最终表达式就是title:[d TO j]

NumericRangeQuery

数字范围检索,可以返回在两个数字直接的数据.在建索引时,该字段必须是以数字方式建的.并且创建时和检索时的使用的数字类型要相同.

1NumericRangeQuery query = NumericRangeQuery.newIntRange("pubmonth",198805,198810,true,true);
2//最终表达式就是pubmonth[198805 TO 198810]

PrefixQuery

前缀检索,就像数据库里的LIKE 'abc%'一样.普遍用于产品分类,不确定单词等.

1Term term = new Term("category", "/technology/computers/programming");
2//或者
3Term term = new Term("title", "can");
4//最终表达式就是title:can*

BooleanQuery

布尔检索,对两个Query进行逻辑运算.选项有BooleanClause.Occur.MUST, BooleanClause.Occur.SHOULD 和 BooleanClause.Occur.MUST_NOT.

1TermQuery searchingBooks = new TermQuery(new Term("subject","search")); //A 检索subject中有search的
2Query books2004 = NumericRangeQuery.newIntRange("pubmonth", 200401, ,200412,true, true); //B 检索出版时间范围
3BooleanQuery searchingBooks2004 = new BooleanQuery(); //用于最终合并的检索
4searchingBooks2004.add(searchingBooks, BooleanClause.Occur.MUST); //必须有A检索的结果
5searchingBooks2004.add(books2004, BooleanClause.Occur.MUST);//必须有B检索的结果
6//最终表达式就是+subject:search +pubmonth[200401 TO 200412]

PhraseQuery

短语检索,可以检索一个短语或词组.可以设置单词间隔距离,默认是1

1PhraseQuery query = new PhraseQuery(); // 创建短语Query
2query.setSlop(slop); // 设置间隔
3for (int i=0; i < phrase.length; i++) {
4query.add(new Term("field", phrase[i])); // 增加短语
5}
6//最终表达式就是title:"sloppy phrase"~5 ~5表示间隔

WildcardQuery

通配符检索,可以使用?,*这些通配符进行检索.?代表一个字符,*代表多个字符.(注意在单词开头使用通配符会严重影响效率)

1Query query = new WildcardQuery(new Term("contents", "?ild*"));
2//最终表达式就是contents:?ild*

FuzzyQuery

模糊检索,可以检索相似的词.比如wuzza和fuzzy.(模糊检索也会影响效率)

1Query query = new FuzzyQuery(new Term("contents", "wuzza"));
2//最终表达式就是contents:wuzza~0.5

MatchAllDocsQuery

匹配全部文档,顾名思义就是匹配全部文档的意思.

1Query query = new MatchAllDocsQuery(field);
2//最终表达式就是*:*

基于STM32开发的智能语音控制系统 本文将介绍如何使用STM32微控制器开发一个智能语音控制系统,通过语音识别模块、OLED显示屏、Wi-Fi模块等实现对家用电器或其他设备的语音控制。智能语音控制系统的核心是STM32微控制器,通过语音识别模块识别用户的语音指令,并根据指令控制家用电器或其他设备。:定期测试语音识别模块、继电器控制模块、OLED显示屏和Wi-Fi模块的工作状态,确保系统能够在各种情况下正常运行,并保持智能语音控制系统的可靠性。本系统同样适用于办公环境,可以通过语音指令控制办公室设备,如照明、空调等,提供智能化的办公体验。 阅读详情

相关推荐

DASH 流媒体协议(Dynamic Adaptive Streaming over HTTP)概述——起源、MPD文件解析、相关项目

简单介绍DASH的起源与发展、MPD文件简要解析、相关项目,以及常见流媒体协议的比较

farewellyi的博客 6884

lucene 搜索的几种方式(转)

TermQuery这个检索通常查找文档中唯一数据的字段(在更新索引时特别有用),一般这个字段使用Field.Index.NOT_ANALYZED方式保存索引(但并不意味着所有Field.Index.NOT_ANALYZED方式保存索引的字段有唯一值).1Term t =newTerm("contents","java");2Query query =newTermQuery(t);3//...

weixin_30770783的博客 214

【WILEY】从Revision到Online:一次投稿的完整状态演进与关键节点实战解析

本文详细解析了从Revision到Online发表的完整投稿流程,包括修改稿准备、回复信撰写、状态跟踪等关键节点。特别针对Wiley期刊,提供了实用的操作技巧和常见问题解决方案,帮助作者高效完成论文修改与发表。

weixin_29219189的博客 361

lucene3.0范围查找TermRangeQuery

  在lucene3.0中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代。 TermRangeQuery:主要用于文本范围查找;   IndexReader reader = IndexReader.open(FSDirectory.open(INDEX_DIR), true); // only s...

SAN_YUN的专栏 323

告别偏色!手把手教你用i1Profiler 3.5为喷墨打印机制作专属ICC曲线(附D50/D65光源选择指南)

本文详细介绍了如何使用i1Profiler 3.5为喷墨打印机制作专属ICC曲线,解决设备偏色问题。从色彩管理基础、软件配置到色块打印与测量实战技巧,逐步指导用户完成曲线制作,并提供了D50/D65光源选择指南,确保色彩还原精准。适合摄影师和设计师提升打印质量。

weixin_30613343的博客 1万+

yolov7模型部署流程

yolov7部署流程

算法的猫 1396

Lucene5学习之TermRangeQuery使用

    TermRangeQuery是用于字符串范围查询的,既然涉及到范围必然需要字符串比较大小,字符串比较大小其实比较的是ASC码值,即ASC码范围查询。一般对于英文来说,进行ASC码范围查询还有那么一点意义,中文汉字进行ASC码值比较没什么太大意义,所以这个TermRangeQuery了解就行,用途不太大,一般数字范围查询NumericRangeQuery用的比较多一点,比如价格,年龄,金...

嘿↗你的益达 1331

区块链技术在碳足迹数据存证与溯源中的应用深度解析

消费者扫描产品上的二维码,即可通过区块链浏览器查询到该产品的数字碳标签,并追溯其从茶园到货架的每一步碳足迹数据,以及这些数据是如何被智能合约自动计算和认证的,从而建立起强大的品牌信任。如果说哈希链解决了数据的“存”与“证”的问题,那么智能合约则解决了数据“用”与“管”的自动化问题。综上所述,虽然针对“碳足迹数据可追溯性”这一特定应用场景的公开、标准化的性能基准案例尚不丰富,但现有研究和企业级解决方案(特别是联盟链)已经证明,通过合理的技术选型和架构设计,区块链的性能可以满足实际商业需求。

百态·数智思维 | 聚焦大数据、量化与未来AI 1106

Lucene高级搜素(Query、QueryParser和分页搜索)

Lucene高级搜素(Query、QueryParser和分页搜索) Query QueryParser Lucene分页搜索

高興 697

海光(hygon)CPU ESXI vSphere 紫屏问题修复记录

海光服务器ESXI 紫屏问题修复

edison202302的博客 3552

别再只怪贴片厂了!从MLCC内部裂纹,看懂物料质量与工艺应力的博弈

本文深入分析了MLCC内部裂纹的失效原因,提供了从裂纹形态学到生产全流程的失效风险地图的完整分析框架。通过实战案例和检测技术组合,帮助工程师精准锁定MLCC失效背后的真凶,优化物料质量和工艺应力管理。

weixin_33122947的博客 292

lucene的检索方式

[size=large]Lucene 简介[/size] [size=medium]Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。[/size] [color=darkred][siz...

u012901416的专栏 152

rk3568 rk628桥片hdmi转lvds

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 1131

编程点滴.LUCENE的检索方式

TermQuery 这个检索通常查找文档中唯一数据的字段(在更新索引时特别有用),一般这个字段使用Field.Index.NOT_ANALYZED方式保存索引(但并不意味着所有Field.Index.NOT_ANALYZED方式保存索引的字段有唯一值). Term t = new Term("contents", "java"); Query query = new TermQuery(t)...

weixin_30747253的博客 107

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从单值到对象级校验:Apache Commons Validator与ValidX的JMH性能横评

数据校验是后端接口开发中绕不开的基础环节,尤其在参数入口繁多、嵌套对象与集合元素并存的业务场景下,手写 if/else 校验逻辑往往导致代码膨胀、规则模糊且难以维护。传统工具类如 Apache Commons Validator 提供高可靠的单值格式校验,性能出色;而 ValidX 这类规则引擎则把校验抽象为声明式规则,支持对象图遍历、错误消息聚合及动态调参,显著降低整链路的组织成本。两者的本质差异并非单纯的执行速度,而是“工具箱”与“规则框架”的定位区别。在 JMH 实测中,单字段校验时 Commons

weixin_34060299的博客 362

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Lucene全文检索之多种查询方式

查找索引 步骤 创建一个Director对象,指定索引库的位置 创建一个IndexReader对象 创建一个IndexSearcher对象,构造方法中的参数indexReader对象。 创建一个Query对象,如TermQuery 执行查询,得到一个TopDocs对象 取查询结果的总记录数 取文档列表 打印文档中的内容 关闭IndexReader对象 public void searchInd...

菜鸡也有大佬梦 886

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Lucene检索提高性能的几个方式

1.采用最新版本的Lucene 2.索引文件存储采用本地文件系统,如果需要挂载远程系统,请采用 readonly方式。 3.当然采用更好的硬件,更高I/O的磁盘 4.提高OS 缓存,调整参数 5.提高JVM heap size 6.索引文件读写分离,打开IndexReader的时候采用 readonly方式 7.在非Windows系统中使用,采用NIOFSDirectory 取代...

weixin_30477797的博客 157

全文检索Lucene使用方式

在说全文检索之前,先说说数据库搜索,数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。 为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。   数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长...

kxj19980524的博客 462

paip.;论全文检索实现方式lucene Sphinx solr以及比较

paip.;论全文检索实现方式lucene  Sphinx  solr以及比较   1.    1lucene(solr,elasticsearch 都是基于它)..................................................................... 1 2.    Lucene缺点...........................

attilax的专栏 5210

paip 论全文检索实现方式lucene Sphinx solr以及比较

paip 论全文检索实现方式lucene Sphinx solr以及比较

sdfhncfw的博客 207

Lucene2.0检索方式

取得检索信息: 方式一: for(HitIterator iter=(HitIterator)hits.iterator();iter.hasNext();){ Hit hit=(Hit)iter.next(); //Document doc=hit.getDocument(); hit.get("title"); hit.get("body"); } 方式二: for(int i=0;i Doc...

weishuwei 157

lucene创建文档 检索数据方式

<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- lucene核心库 --> <depende...

weixin_44854918的博客 218

全文检索技术---Lucene查询索引库方式

查询索引库的两类(三种)方式: 使用Query的子类: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;termQuery: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp

Lee_0610的博客 333

JAVA_WEB项目之使用Spring的xml配置方式在项目中管理Lucene检索框架

Lucene检索在web项目开发中也许会成为一个需求,

陈楚东的专栏-学编程切记心浮气躁,贵在坚持 2819

全文检索与Lucene学习

转载地址:http://blog.youkuaiyun.com/feixiangdexin123087/article/details/7987517 全文检索与Lucene学习 本文是针对Lucene3.3.0进行的总结,并提供了大量的实现Demo,常用的基本都有,下载地址:http://download.youkuaiyun.com/detail/a_2cai/3594154 全文检索与Luce

小江专栏 918
上一篇: java.net.UnknownHostException 异常处理
下一篇: java时间处理,时间格式转换
OnePiece_Sky
博客等级 码龄15年 9粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值