全文搜索
本文档详细介绍如何利用 GreptimeDB 的查询语言对日志数据进行高效搜索和分析。
GreptimeDB 支持通过 SQL 语句灵活查询数据。本节将介绍特定的搜索功能和查询语句,帮助你提升日志查询效率。
使用 matches_term 函数进行精确匹配
在 SQL 查询中,你可以使用 matches_term 函数执行根据字符类型应用边界规则的词语/短语匹配,这在日志分析中尤其实用。matches_term 函数支持对 String 类型列进行匹配。你也可以使用 @@ 操作符作为 matches_term 的简写形式。下面是一个典型示例:
-- 使用 matches_term 函数
SELECT * FROM logs WHERE matches_term(message, 'error') OR matches_term(message, 'fail');
-- 使用 @@ 操作符(matches_term 的简写形式)
SELECT * FROM logs WHERE message @@ 'error' OR message @@ 'fail';
matches_term 函数查找完全相同的字符序列,并根据搜索词中的字符应用边界规则:
text:需要进行匹配的文本列,该列应包含String类型的文本数据。term:要匹配的词语或短语,遵循以下规则:- 区分大小写
- 对于不包含汉字的搜索词,需要满足词边界规则。如果搜索词的首尾字符是 ASCII 字母或数字,则相邻字符不能是 ASCII 字母或数字;如果首尾字符是其他 Unicode 字母或数字,则相邻字符不能是字母、数字或汉字。
- 包含汉字的搜索词按连续子串匹配,不要求词边界。
- 支持完整词语匹配和短语匹配