html - 如何在mysql数据库中保存和搜索内容(使用wysiwyg html编辑器制作)?

标签 html mysql laravel-4 wysiwyg richtext

我想使用所见即所得的 html 编辑器(如 this )并将其保存到我的 mysql 数据库中。 存储内容的最佳方式是什么(我猜在文本类型字段中存储所有 html 代码)?

这样您就可以搜索内容了。 (例如:博客、taringa、stackoberflow...)

如果您将 html 代码存储在数据库中,如何进行查询以便只搜索文本内容而不搜索 html 标签?

注意:我有一个 Laravel 4 项目。 (优先使用 Eloquent)。

最佳答案

现在您正在进入搜索引擎类型的搜索。您可以选择数据库简单性或基于性能的搜索。这个答案将假设您有空闲空间,并且您不会尝试压缩尽可能多的空间。

数据库简单性:

对于这种方法,您实际上可以将文本(经过清理的)放入数据库中,然后将其取出,您可以在没有清理的情况下打印它{{{ $txt }}}。至于搜索,您只需对整个列进行全文搜索,以查找您要搜索的“%query%”。您需要研究一些原始查询,因为您可以对其进行一些优化。

性能:

输入后,您将获得两个版本的文本,可以帮助打印和搜索。因为您不关心标签,所以只需删除所有这些标签(粗略的正则表达式只会删除尖括号之间的任何内容,并且括号本身会替换(“<*>”,“”))

也可以删除标点符号,因为这可能会扰乱搜索(您的,您是)。在清理文本以进行搜索优化后,您可以只拥有可打印列并在搜索列上进行搜索。当您进行全文搜索时,它仍然会很慢,但比同时处理标签要快。

另一种策略是使用另一列作为唯一单词列,这些通常可以称为标签。因此,在这种情况下,您还可以通过另一个过滤器从之前的搜索文本中提取数据,并删除所有对它们没有多大意义的常用单词(the、or、by、it、is)。您现在可能有一个与文章半相关的单词列表,这些单词可能有重复项,将重复项与计数合并,并在另一列中从大到小对它们进行排序。

现在,您可以根据您的目标进行多种搜索粒度。您还可以通过模糊搜索来增强此功能,这确实会增加您的搜索时间,并且您可能需要创建特定的索引表来帮助减少搜索时间。

关于html - 如何在mysql数据库中保存和搜索内容(使用wysiwyg html编辑器制作)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31307664/

相关文章:

javascript - 按下按钮即可更改图像

php - Laravel 4.2 - 仅选择基于另一个查询的行数为 0 的行

php - Laravel 访问器、关系和预加载

javascript - 当我处理 HTML5 时,我是否必须在 node.js 中包含 res.writeHead?

html - 表格背景颜色每两行变化一次

php - Login.php 代码在登录过程中不检索电子邮件

mysql - 如何将excel文件导入MySQL数据库

mysql - 基于表之间共享的 ID 创建 SQL View

php - 找不到 Laravel 迁移表

javascript - 使用 javascript 在图像上标记区域