Lucene查询语法和使用
(1)直接输入单词查询,比如输入Windows:
也可以根据一个关键词(key) 配上该关键词的值,精确查找,如选择关键词为ip,查找一个已知的ip地址:
也可以这样查询,假设已经某条日志数据中key为bytes的值为7000:
"key":value,精确匹配。"bytes"的双引号可以不要,直接:
bytes: 19504
(2) 可以一次同时搜索多个单词,用 and 连接,比如 Windows and Chorme and GET,相当于编程中的&&逻辑判断:
and 和 or都是Lucene的逻辑判断,可以组合起来使用。
(3)通配符。
* 匹配0或多个字符。
(4)模糊查询。
在一个单词后面加上 ~,就可以模糊查询。~后面可以跟上一个 0到1的系数,默认是0.5,系数值越高,越精确。
zhang~
返回结果可能会是zhgan,模糊匹配,模糊查询。如果是zhangphil~1,则为精确查询,相当于一个单词。
(5)范围查询
Lucene支持简答的逻辑运行,常规的大于,小于,大于等于,小于等于
具体的使用,例如查询bytes字节数大于7000的数据:
可以将大于和小于组合起来,形成开始和截止的逻辑判断,两个组合判断条件用括号括起来:
(6)逻辑运算
AND 逻辑条件的与。 &&
OR 逻辑条件的或。 ||
NOT 逻辑条件的非。 !
+ 有这个条件。
- 排除这个条件。
比如,查询bytes字节数大于19000但是不等于19504:
或者把NOT写入括号里面
这样写也可以:
(not bytes 19504) and (bytes >19000)
(7)转义字符。
用 \ 转义。比如
\(1\+2\)\:3
匹配查询
(1+2):3