#Terms(文本匹配)
terrms分为两种,单词查询和词组查询。单词如“hello”,词组如“hello world”。他们可以用布尔运算符连接起来构成复杂查询。

#查询包含hello的结果
hello
#查询包含“hello world”的结果
"hello world"

注意,词组查询时需要用""将词组包括进来,不然会被拆分成两个单词进行查询
“hello world”
#Fields(字段匹配)
字段类型的查询。Lucene的内部结构类似json格式,采用key、value的形式存储。因此通过key/value查询是必要的。他的基本语法是key:value。

#查询订单号为20171001111023232353的结果
order_no:"20171001111023232353"

注意,当value为多个单词时,需要用""修饰

#查询标题为“Do it right”的文章
title:"Do it right"

#Wildcard Searches(通配符匹配)
Lucene支持强大的通配符查询。
使用?表示匹配单个字符,*表示匹配0个以上的字符。

#查询名字为“蒙奇.*.路飞”的人,找出其中的冒牌货
name:"蒙奇.?.路飞"
#找出“蒙奇.D”家族的所有人
name:"蒙奇.D.*"

Note:通配符不能用于查询的第一个字符
#Fuzzy Searches(模糊匹配)
模糊查询,Lucene的模糊查询不同于sql,他是找出与给定条件相近的结果来。比如查询Hello相近的词组,他会返回fellow,Helloween等词汇,并根据相似度打分,相似度分数范围为(0-1)。

#与Hello相似度大于0.5的结果
Hello~0.5

#Proximity Searches(相邻匹配)
用于搜索两个相隔一定距离的两个词组。

#搜索"hello","Tom"之间隔着10个单词的结果
"hello Tom"~10

#Range Searches(范围匹配)

#返回id在10到100氛围内的所有结果,包含id为10和100的结果
id:[10 TO 100]
#返回id在10到100氛围内的所有结果,不包含id为10和100的结果
id:{10 TO 100}

#Boosting a Term (提升权重)
在查询结果中,Lucene会为每个结果打分,打分规则是Lucene认为该结果与查询条件的关联度。关联度越高打分越高。默认情况下每个词语的权重都是1,但实际中,可能每个词语的权重并不一样。我们可以通过"^"来修改。

#搜索包含hello和world的结果,并且hello的权重为2
hello^2 world

#Boolean Operators (布尔操作符)

Lucene 支持 “AND”, “+”, “OR”, “NOT” 和 “-” ,注意,这些操作符必须是大写。

###AND
AND连接的查询条件必须全部满足,可以用"&&"替换

#查询航司为CA,id为100的记录
carrier:CA AND id:100

###+
+连接的查询必须满足,其他条件可以不满足 查询姓"张"的名字中可能带有"华"的名字,+张 华
###OR
OR是默认连接符,默认情况下,Lucene会将句子拆分成单词并用OR连接起来查询,表示或者

#查询"张"或者"华"的名字:
张 华
张 OR 华

###NOT
NOT表示从满足左边条件结果中去除右边条件。可用"!"替换

#查询航司为CA并且不再2017-01-01起飞的航班
carrier:CA NOT flightDate:2017-01-01

###-
与NOT类似,表示从满足左边条件结果中去除右边条件

#Grouping(分组)
Lucene支持使用()来自定义查询条件的组合,以实现查询逻辑的自由组合。

#查询名字为"张三"或者"李四",性别为男且年龄在20到25之间的人
(name:"张三" OR name:"李四") AND sex:man AND age:[20 TO 25]

#Field Grouping(字段分组)

Lucene支持在字段匹配使用分组来组合搜索逻辑。

#查询年龄段为10到20和50到80的人群
age:([10 TO 20] [50 TO 80])

注意:当需要搜索name包含"&“时,需要使用”/"做转义。比如name:/&, 类似的有+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Lucene基本语法相关推荐

  1. lucene查询语法,适用于ELk:kibana查询

    lucene查询语法,适用于ELk:kibana查询 Kibana在ELK中扮演着数据可视化角色,用来查询及展示数据: Elasticsearch查询采用的是luncene搜索引擎,其4过滤查询语法和 ...

  2. Lucene查询语法详解

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

  3. kibana 写两个查询条件_Kibana使用之Lucene的语法查询

    转载地址 Kibana使用的查询语法是Lucene的查询语法,这里在使用Kibana的同事一定要注意,不然,在进行搜索的时候,你会抓狂的. 下面了解下Lucene的查询语法,了解了Lucene的查询语 ...

  4. Lucene查询语法和使用

    Lucene查询语法和使用 (1)直接输入单词查询,比如输入Windows: 也可以根据一个关键词(key) 配上该关键词的值,精确查找,如选择关键词为ip,查找一个已知的ip地址: 也可以这样查询, ...

  5. Lucene查询语法

    TermQuery 是最常用的查询对象,也是 Lucene 可以使用的许多复杂查询的基础.它用于根据区分大小写的密钥检索文档 Query query = new TermQuery(new Term( ...

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

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

  7. elk 搜索 语法_ELK:kibana使用的lucene查询语法

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

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

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

  9. 基于lucene语法的实时文本搜索与匹配--Tripod

    Tripod是一款基于lucene语法实现的,可对文本数据进行实时匹配的开源工具,其工程路径为https://github.com/colorknight/tripod.git.在一定场景中,使用它, ...

最新文章

  1. rtmp 封包及消息
  2. Python脚本完美解决Linux环境解压.zip文件乱码问题
  3. mysql  基本操作(二)
  4. java 下对字符串的格式化
  5. mysql5.7编译安装路径_MySQL_MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径,安装环境需求: 自从昨天安 - phpStudy...
  6. 扫地机器人欠压检测电路_扫地机器人智能家居必备!靠传感器感知外界环境?...
  7. NLP《词汇表示方法(四)负采样》
  8. DNS递归查询与迭代查询
  9. 用友网络2021年净利润7.1亿元 同比减少28.2%
  10. JAVA ActiveMQ消息发送和接收
  11. SQL 2008 群集配置详尽攻略[3]—主节点备节点数据库安装
  12. JDK11无法启动VisualVM
  13. 二叉树遍历的一些非递归算法
  14. 培训php暑期,西安软件php暑假培训
  15. Linux动态频率调节系统CPUFreq之三:governor
  16. 未成年人勿进 谨以献给1980~1990出生的人(二)
  17. 用C语言对一元二次方程求解
  18. Dialog dismiss 流程
  19. 学院来信371:建立“可复制”+“可迭代”的投资系统
  20. 2020最新智能客服|聊天机器人算法、架构及应用分享

热门文章

  1. Zhi-Hua Zhou点评AI领域会议
  2. 在springboot中使用JWT自定义生成Token信息,接口请求时校验Token(在Shiro基础上)
  3. 喜报频传,钛灵信息科技成为安徽省科学家企业家协会会员单位!
  4. 互联网应用架构面面观
  5. 百度与环保部启动生物多样性保护项目:搜索贴吧糯米等联动
  6. spring xml头文件xmlns和xsi的含义
  7. 数据的最小值和次小值
  8. 仿IPAD密码输入界面
  9. 一枚芯片的实际成本是多少?(2)晶片的成本
  10. Word2013中进行拼写和语法检查时如何设置默认校对语言