mysql - 检查给定句子(查询)是否包含任何预定义关键字的最佳方法

标签 mysql mongodb elasticsearch amazon-dynamodb couchbase

这可能看起来像一个简单的问题已经回答了无数次,但我找不到最佳的方法(使用一些数据库)。

我有一个包含数千个关键字的列表(比如说辱骂词)。每当有人发布消息(长句子或段落)时,我想检查给定的句子是否包含任何关键字,以便我可以阻止用户或采取其他操作。

我正在寻找一个可以解决上述问题并在几毫秒(<15ms)内给出响应的数据库/模式。

有很多数据库可以解决上述问题的相反问题:给定关键字,查找包含关键字的文档(文本搜索)。

最佳答案

尝试 ClickHouse适合您的工作量。

根据文档:

multiMatchAny(...) returns 0 if none of the regular expressions are matched and 1 if any of the patterns matches. It uses hyperscan library. For patterns to search substrings in a string, it is better to use multiSearchAny since it works much faster. The length of any of the haystack string must be less than 2^32 bytes.

关于mysql - 检查给定句子(查询)是否包含任何预定义关键字的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59608395/

相关文章:

mysql - MySQL udf创建报错1127

php - 通过互联网从php web应用程序连接到本地mysql数据库

mysql - Elastic Search复杂场景

elasticsearch返回匹配单词的数量

javascript - 从 Elasticsearch 响应数组中删除对象

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

php part2中的phpmyadmin查询错误

C# MongoDb - 如何更新嵌套文档中的一个字段?

node.js - 如何计算数组mongodb查询中错误值的数量

javascript - Node.js 和 Mongodb 源代码的安全 + 加密选项