这可能看起来像一个简单的问题已经回答了无数次,但我找不到最佳的方法(使用一些数据库)。
我有一个包含数千个关键字的列表(比如说辱骂词)。每当有人发布消息(长句子或段落)时,我想检查给定的句子是否包含任何关键字,以便我可以阻止用户或采取其他操作。
我正在寻找一个可以解决上述问题并在几毫秒(<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/