当前位置:网站首页>KQL和Lucene的区别
KQL和Lucene的区别
2022-08-09 01:26:00 【IT利刃出鞘】
原文网址:KQL和Lucene的区别_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍KQL和Lucene的区别。
KQL和Lucene都是Kibana支持的查询语言,这两种语言差别不大。
官网网址
KQL语法:https://www.elastic.co/guide/en/kibana/7.7/kuery-query.html
Lucene语法:Lucene query syntax | Kibana Guide [7.7] | Elastic
1.下拉建议
KQL 可以在您键入查询时获取有关字段、值和运算符的建议,而在使用 Lucene 时则不存在此功能。 (此功能需要“基本层”或更高级别。)
2. 范围查询
查找count大于或等于 5
KQL 语法: count:>=5
Lucene 语法: count:[5 TO *]
查找account_number大于或等于 100,但小于 200
KQL 语法: account_number:>=100 and account_number:<200
Lucene 语法: account_number:[100 TO 200}
3. 操作符
KQL 文档
bool 运算符 or , and和 not .大写版本( OR 、 AND 和 NOT )也有效。该文档指定 and比 or 有更高的优先级,这是通常的运算符优先规则。
Lucene 文档
Lucene 也支持 AND , OR和 NOT ,但仅限大写。所以,如果你尝试使用 and ,它将被视为字面词。
Lucene 推荐使用 + (条目必须存在) 和- (条目不能存在)。例如:brown +fox -news指定 brown是可选的,fox必须存在,并且 news不得存在。
Lucene 支持 && , ||和 ! 。但是,文档指出所有这些运算符都不遵守通常的运算符优先级规则,并建议在同时使用多个运算符时使用括号。
4. 存在查询
查找包含字段 response 的文档
KQL 语法: response:*
Lucene 语法:_exists_:response ( response:* 也适用于 Lucene,但如果该字段的值为空字符串时的行为可能会有所不同)。
5. 通配符
通配符的种类
KQL:文档只提到了 *通配符,匹配零个或多个字符。没有提到 ?。
Lucene:*通配符,匹配零个或多个字符;?匹配单个字符。
通配符的转义
KQL:将通配符用作通配符时从不需要转义通配符,因此我们可以使用类似 book.*:(quick or brown). 的内容。
Lucene:通配符作为字段名的一部分似乎需要转义。给出的例子是 book.\*:(quick OR brown) .
6. 嵌套查询
根据文档,嵌套查询的语法有所不同。
7. Lucene 的额外功能
KQL 文档没有提到正则表达式、模糊搜索和 boosting;所以它们可能不受支持。 Lucene 支持他们。
边栏推荐
猜你喜欢
随机推荐
33. 分别谈谈联合索引生效和失效的条件
typescript89-展示任务列表功能
全文翻译:欧盟第29条数据保护工作组 数据保护官指南
经典卷积神经网络ZFNet--解卷积可视化
字节输入流(InputStream)与字节输出流(OutputStream)
在 ASP.NET Core 中上传文件
LeetCode每日两题02:第一个错误的版本 (均1200道)方法:二分查找
5-2 Seaborn 分类绘图
Wireshark packet capture tool
【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
js文件的处理
jetson nano 开机闪一下然后黑屏
ffplay playback control
DataNode重启
【Fiddler】Fiddler实现mock测试(模拟接口数据)
轻量级网络SqueezeNet学习记录
LeetCode精选200道--字符串篇
『Another Redis DeskTop Manager』用了这款Redis可视化工具,分析效率提升12倍
如何准备一份简历
椭圆曲线复习