首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql数据库中保存和搜索内容(使用wysiwyg编辑器生成)?

问如何在mysql数据库中保存和搜索内容(使用wysiwyg编辑器生成)?
EN

Stack Overflow用户
提问于 2015-07-09 03:34:47
回答 1查看 1.4K关注 0票数 0

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

这样你就可以搜索内容了。(比如:博客,塔林加,堆栈.)

如果将html代码存储在数据库中,那么如何才能进行查询,使其只搜索文本内容而不搜索html标记?

注:我有一个Laravel 4项目。(偏好使用雄辩)。

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 18:05:47

所以现在你进入了搜索引擎类型的搜索。您可以使用DB简单性或基于性能的搜索。这个答案将假设你有足够的空间,而且你没有试图压缩尽可能多的空间。

DB简单性:

对于此方法,您实际上可以将文本(消毒)抛到DB中,并且在取出文本后,您可以打印它,而不需要卫生{ $txt }。至于搜索,您只需对整个列进行全文搜索,就可以搜索"%query%“。您需要查看一些原始查询,因为您可以对其进行一些优化。

性能:

在输入时,您有两个版本的文本,可以帮助打印和搜索。由于您不关心标记,所以只删除所有标记(粗略的正则表达式将删除尖括号中的任何内容,方括号本身替换(“<*>”,""))

也可以删除标点符号,因为这可能会扰乱搜索(你的,你是)。在对文本进行优化之后,您可以使用可打印的列并在搜索列上进行搜索。当您正在进行全文搜索时,它仍然会很慢,但比处理标记的速度更快。

另一种策略是将另一列作为唯一的word列,这通常可以称为标记。因此,在这种情况下,您还可以从前面的搜索文本中通过另一个筛选器提取数据,并删除对它们没有多大意义的所有常用单词(或者,它是)。现在,您可能有了一组与文章有可能有重复的半相关的单词列表,将重复的单词与计数合并,并在另一列中将它们排序从最大到最少。

你现在有多个粒度的搜索,取决于你的目标。您也可以使用模糊搜索来增强这一点,这确实会增加搜索时间,而且您可能需要创建特定的索引表来帮助减少搜索时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31307664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档