Lucene查询语法汇总
Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完整的查询引擎和索引引擎,部分文本分析引擎。
我们平时使用kibana、阿里云的日志查询或者其他一些lucene二次开发的产品,几乎都支持lucene语法。
下面给大家演示各种查询方式,更多请参考 Apache Lucene - Query Parser Syntax
一、单词查询
直接使用单词,例如chenqionghe
多个单词,可以用逗号或者空格隔开,例如chenqionghe,活动
可以指定字段:空格
来查询,例如page: 18
、content:"sport"
二、通配符查询
- ?匹配单个字符
- *匹配0或多个字符
例如muscle?
能匹配到muscles
搜索hi*er
搜索*er
三、模糊查询
~
:在一个单词后面加上~启用模糊搜索,可以搜到一些拼写错误的单词
例如first~
能匹配到错误的单词frist
可以在~后面添加模糊系数,例如first~0.8
,模糊系数[0-1],越靠近1表示越相近,默认模糊系数为0.5。
四、近似查询
在短语后面加上~
,可以搜到被隔开或顺序不同的单词
"life movement"~2
表示life和movement之间可以隔开2两个词
五、范围查询
page: [2 TO 8]
page: {2 TO 8}
[]
表示端点数值包含在范围内,{}
表示端点不包含在范围内
搜索第2到第8页,包含两端点page: [2 TO 8]
搜索第2到第8页,不包含两端点page: {2 TO 8}
搜索第2到第8页,包含起始不包含末端page: [2 TO 8}
六、优先级查询
如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。使用符号^
提高相关度。
默认为1,可以为0~1之间的浮点数,来降低优先级
七、逻辑操作
AND
:逻辑与,也可以用&&
代替OR
:逻辑或,也可以使用||
代替NOT
:逻辑非,也可以使用!
代替- +:必须包含
- -:不能包含
如muscle AND easy
,muscle和easy必须同时存在
muscle NOT easy
,muscle存在easy不存在
muscle OR easy
,muscle或easy存在
例如+life -lies
:必须包含life,不包含lies
八、括号分组
可以使用小括号对子句进行分组,构造更复杂的查询逻辑
chenqionghe OR (生命 AND 运动)
同时,也可以在字段中使用小括号分组,例如content:(+chenqionghe +"muscle")
九、转义特殊字符
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
这些字符需要转义
例如\(1\+1\)\:2
用来查询(1+1):2
到这就讲完了,是不是觉得超简单,惊不惊喜,意不意外呀~
Lucene查询语法汇总的更多相关文章
- query_string查询支持全部的Apache Lucene查询语法 低频词划分依据 模糊查询 Disjunction Max
3.3 基本查询3.3.1词条查询 词条查询是未经分析的,要跟索引文档中的词条完全匹配注意:在输入数据中,title字段含有Crime and Punishment,但我们使用小写开头的crime来搜 ...
- Lucene查询语法详解
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...
- kibana使用(ELK)、Lucene 查询语法
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...
- ELK:kibana使用的lucene查询语法【转载】
kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...
- ELK:kibana使用的lucene查询语法
kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...
- kibana使用的lucene查询语法
kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...
- lucene查询语法简介
为什么要介绍lucene:我们在ELK中搜索相关日志的时候,搜索语言需要遵循Lucene才可以匹配到需要的信息 什么是Lucene:Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件 ...
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser
一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser 2014-06-25 14:25 722人阅读 评论(1) 收藏
一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...
随机推荐
- jQuery包装
1. jQuery包装多个选择器的click事件 // "告警等级"选择 $("#filter_level_1, #filter_level_2, #filter_lev ...
- Oracle 11g 静默安装过程(centos7)
开启机器,本次实例分配的ip是:192.168.3.197(Xshell ssh连接) 2 安装unzip 工具.vim编辑器(个人习惯,vi也可以) 3 在/etc/hosts文件中添加本机IP跟主 ...
- mongodb use where and custom function to query mongodb存储过程
function name regexObjSubObjKey function code function(proto,value) { var match=false; var reg = new ...
- 关于unicode汉字范围正则表达式的写法
\u2E80-\u2EFF:CJK部首补充: \u2F00-\u2FDF:康熙部首: \u3000-\u303F:CJK标点符号: \u31C0-\u31EF:CJK笔划: \u3200-\u32FF ...
- LG_3459_[POI2007]MEG-Megalopolis
题目描述 Byteotia has been eventually touched by globalisation, and so has Byteasar the Postman, who onc ...
- H5本地离线存储
前言上一篇文件结尾,有同学问我本地存储图片方法,其实本地存储方式有很多,我们打开谷歌浏览器,查看源代码,在resources页签中,有web SQl ,indexedDB等等,我前面文章讲过Local ...
- the way of hardware design study
1.器件 主要分类 1.MCU2.DSP3.FPGA4.Embedded5.System on Chip MCU MCU俗称单片机,通常无操作系统,用于简单的控制,如电梯,空调等. DSP DSP叫做 ...
- fastDFS 一二事 - 简易服务器搭建之--阿里云
第一步:安装fastDFS依赖libevent工具包 yum -y install libevent 第二步:解压libfastcommon-1.0.7.tar.gz文件 tar -zvxf libf ...
- [大餐]开发摘记1--我的Fragment通信的框架
[大餐]开发摘记1--我的Fragment通信的框架 | 卖牙膏的芖口钉 盒子 盒子 博客 分类 标签 友链 大专栏 [大餐]开发摘记1--我的Fragment通信的框架ass="ROUN ...
- redis笔记之一
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中.而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要 ...