1. Terms
一个查询由词条与操作组成。词条可以是单词,或者短语。
hello #单独项
"hello pzdn" #双引号引起来短语
2. Field
Lucene 支持字段数据。通过冒号指定。
语法:
FieldName:content
eg:
title:"The Right Way" AND text:go #查询标题为"The Right Way",文本为go的记录,且"The Right Way"作为一个整体
title:The Right Way # 这里,The Right Way 将被分词
SystemCode:MKT AND Message:"解析失败" # AND连接两个条件,作为逻辑且
SystemCode:MKT OR SystemCode:MT # OR连接两个条件,作为逻辑或
2.1 通配符查询
针对Term,可以进行Unix风格的通配符查询。
te?t
test*
te*t
2.2 正则
/[mb]oat/ #匹配moat 或者 boat
2.3 模糊搜索
roam~ #包含roam的
roam~1
2.4 近邻搜索
"jakarta apache"~10 #允许之间有10个分词。
2.5 区间搜索
mod_date:[20020101 TO 20030101] #包含端点
title:{Aida TO Carmen} #不包含端点
3. 逻辑操作符
3.1 AND OR NOT + -
OR
"jakarta apache" OR jakarta
AND
"jakarta apache" AND "Apache Lucene"
+jakarta lucene#必须
NOT
"jakarta apache" NOT "Apache Lucene"
"jakarta apache" -"Apache Lucene" #排除
3.2 分组
(jakarta OR apache) AND website
3.3 字段分组
title:(+return +"pink panther")
4. 转义
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
eg:
\(1\+1\)\:2
Ref:https://lucene.apache.org/core/5_2_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Overview
REf:http://www.tuicool.com/articles/VZfim2