php - 搜索数据库中的冒犯性词语

标签 php mysql

<分区>

我打算按设定的时间间隔在我的数据库中搜索我认为令人反感的单词列表(因为我是一个专制独裁者,我讨厌言论自由 - 我用铁拳统治)。

如何最有效地在我的数据库中搜索关键字列表?我打算搜索的两列被索引为全文。

如果有人知道也会有用的冒犯性词语列表。

致那些 mock 我试图进行审查的人

我将有两个系统。第一个是管理员每天检查的报告功能。打击持不同政见者的第二个工具是这个。只需要一个词搜索,这样管理员就可以检查并决定内容是否令人反感。

最佳答案

Mysql 不会给你精确搜索的工具,拿这个例子来说,如果你有的话:

freedom

既然你是一个独裁者你不想要它,它应该出现,但聪明的用户会把 fr33dom,这是一样的,现在你有 3 种方法来点这个:

  1. 你在你的列表中放置一个词并且 大多数你能想到的推导
  2. 您在 MySql 查询中使用 LIKE 进行搜索,但当您达到数千个时它应该会变慢,即使使用全文索引也是如此
  3. 您使用 Lucene 为您的内容编制索引

我会选择第三种,因为 Lucene 是执行搜索的最佳选择,而且由于您正在寻找单词,我可以想象您正在处理文本,所以这可能比您想象的更有帮助。 Lucene可以帮你搜索类似freedom的词,但不是,那你应该不会错过太多!!你的规则是有保证的!

有使用 Zend Framework 的 Lucene 扩展,您可以在 Google 中轻松找到它们。

祝你在独裁努力中好运!

关于php - 搜索数据库中的冒犯性词语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647183/

相关文章:

php - 如何在 PHP 中使用时间跨度?

php-从数组分页数据

php - 通过 ACF 关系字段的 WordPress 查询

MySQL数据汇总技巧——有没有UNGROUP BY?

mysql - 如何在 save() 时从 Sequelize 获取 MySQL 自动增量主键?

php - preg_match 如何处理使用\Q..\E 时的定界符?

php - 字符串中具有特殊字符的 Laravel 种子数据库

java - Hibernate Criteria 返回重复条目(无连接)

php - 打破大量数据以显示在多个页面或列表中而无需脚本

mysql - 无法通过 Ruby 和 MySQL2 连接到数据库