MATCH_ANY

MATCH_ANY(inverted_column,query, option)

功能说明

只有构建倒排索引的列才能使用该函数,匹配其中任意分词后的字符串,忽略大小写。首先分析(analyze)查询字符串,然后会将query根据分词构建查询,最终返回查询结果。比如查询字符串是“Microsoft Azure Party”,被分析器分词之后,产生三个小写的单词:microsoft,azure和party,然后根据分析的结果构造一个布尔查询,默认情况下,引擎内部执行的查询逻辑是:只要eventname字段值中包含任意球microsoft、azure或party,那么返回该行数据

参数说明

  • inverted_column: 用于构建倒排索引的列。
  • query: 您想要搜索的文本字符串。
  • option: 此参数是必填项,用于指定分词设置。它必须与用于构建倒排索引的列使用相同的分词方法。支持auto参数,该参数会自动与inverted_column中的分词设置进行匹配,例如:map('analyzer', 'auto')

返回结果

boolean类型

案例

  1. 案例一
 select match_any('a b c', 'd a', map('analyzer', 'english')) as res;
 +------+
| res  |
+------+
| true |
+------+
 select match_any('a b c', 'b a d', map('analyzer', 'english')) as res;
  +------+
| res  |
+------+
| true |
+------+
  1. 查询包含Elfriede Heaney的数据,要求含有Elfriede和Heaney则返回,不要求Elfriede和Heaney先后顺序
--查询包含任意包含Elfriede Heaney两个单词的数据
select count(*) from bulkload_data where match_any(data,'Elfriede Heaney',map('analyzer', 'auto'));
+------------+
| `count`(*) |
+------------+
| 33614      |
+------------+

联系我们
预约咨询
微信咨询
电话咨询