Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完整的查询引擎和索引引擎,部分文本分析引擎。
我们平时使用kibana、阿里云的日志查询或者其他一些lucene二次开发的产品,几乎都支持lucene语法。
下面给大家演示各种查询方式,更多请参考 Apache Lucene - Query Parser Syntax

一、单词查询

直接使用单词,例如chenqionghe

多个单词,可以用逗号或者空格隔开,例如chenqionghe,活动

可以指定字段:空格来查询,例如page: 18content:"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查询语法汇总的更多相关文章

  1. query_string查询支持全部的Apache Lucene查询语法 低频词划分依据 模糊查询 Disjunction Max

    3.3 基本查询3.3.1词条查询 词条查询是未经分析的,要跟索引文档中的词条完全匹配注意:在输入数据中,title字段含有Crime and Punishment,但我们使用小写开头的crime来搜 ...

  2. Lucene查询语法详解

    Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...

  3. kibana使用(ELK)、Lucene 查询语法

    Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...

  4. ELK:kibana使用的lucene查询语法【转载】

    kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...

  5. ELK:kibana使用的lucene查询语法

    kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...

  6. kibana使用的lucene查询语法

    kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...

  7. lucene查询语法简介

    为什么要介绍lucene:我们在ELK中搜索相关日志的时候,搜索语言需要遵循Lucene才可以匹配到需要的信息 什么是Lucene:Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件 ...

  8. Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser

    一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...

  9. Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser 2014-06-25 14:25 722人阅读 评论(1) 收藏

    一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...

随机推荐

  1. 使用httpclient必须知道的参数设置及代码写法、存在的风险

    转发地址:http://jinnianshilongnian.iteye.com/blog/2089792 结论: 如果使用httpclient 3.1并发量比较大的项目,最好升级到httpclien ...

  2. Memcached的批量删除方案总结

    Memcached的批量删除,向来是Memcached使用者很头疼的事情,因为Memcached采取的缓存方案是哈希表结构,所以没有办法实现delete from tablename where ke ...

  3. 公式化学习urllib(第一卷)

    Import urllib.request 正常爬取网页: url=网址 +代表 下面测试一下: 结果我就不显示了 令html为读取后的对象 先用正则表达式抓取数据 Import re 令rule是抓 ...

  4. SpringMVC学习笔记九:拦截器及拦截器的简单实用

    SpringMVC中的interceptor拦截器是非常重要的,它的主要作用就是拦截指定的用户请求,并进行相应的预处理和后处理. 拦截时间点在"处理器映射器根据用户提交的请求映射出所要执行的 ...

  5. Nginx笔记总结十二:nginx版本号隐藏

    vim nginx.conf http { server_tokens off;} php-fpm fastcgi.conf或fcgi.conf fastcgi_param SERVER_SOFTWA ...

  6. 组合数学--容斥原理&鸽巢原理

    一次会议由1990位数学家参加,每人至少有1327位合作者.证明可以找到4位数学家,他们当中每两个人都合作 优质解答 这题可以分两步来做.第一,先证明一定有三个人,他们相互合作过.可以先找两个相互合作 ...

  7. Rime输入法一些设定

    有鉴于谷歌搜狗拼音等不太好用,但是博主一直页没找到合心的输入法,直到遇见Rime,中州韵就是我想要的输入法.记录一下自己用的时候的修改,以备查询.注意:缩进不要弄丢,所有更改完都需要重新部署才能生效. ...

  8. LLDB奇巧淫技

    打印视图层级 这个相信很多人都会了,是ta是ta就是ta recursiveDescription 用法大概就是如下 123 po [self.view recursiveDescription] p ...

  9. android-interview

    如何减小安装包的大小 主要是减小资源的大小 不常使用的资源,使用时再从网络下载. 绘制代替图片资源 OOM (Out Of Memory) https://www.zhihu.com/question ...

  10. 数据大爆炸:KDD 2016

    2016"> 饕餮盛宴 ACM SIGKDD国际会议(简称KDD)是数据挖掘领域的顶级国际会议,由ACM (计算机协会)的数据挖掘及知识发现专委会(SIGKDD)负责组织筹办.在现今如 ...