总结说明
在 OceanBase 数据库中使用全文索引的 IN BOOLEAN MODE 模式进行查询时,如果查询语句中的关键词数量超过 256 个,系统会触发语法错误。
详细说明
在 OceanBase 数据库中,当使用全文索引功能并选择 IN BOOLEAN MODE 模式进行查询时,如果查询语句中的关键词数量超过了 256 个,系统会返回错误。
- 在 V4.3.x 和 V4.4.x 版本中,错误信息为:
ERROR 1235 (0A000): Not supported feature or function。 - 在最新的 V4.4.1 版本中,错误信息已优化为:
ERROR 1235 (0A000): Boolean mode with more than 256 tokens is not supported。
此限制源于 OceanBase 内核中 OB_MAX_TEXT_RETRIEVAL_TOKEN_CNT 参数的默认值为 256。超过此限制的查询可能导致更高的内存消耗。
目前,全文索引的布尔模式不支持超过 256 个 token 的底层原因是尚未支持 TAAT(Term-at-a-time)查询策略,该策略在处理多 token 场景时性能更优。
对于需要查询超过 256 个关键词的场景,建议从应用层面进行以下处理:
- 限制单次查询的关键词数量。
- 将查询拆分为多次执行,并通过逻辑运算符(如
AND或OR)组合结果。
适用版本
V4.3.x, V4.4.x