我想使用wysiwyg编辑器(比如这)并将它保存到mysql数据库中。存储内容的最佳方法是什么(我猜在文本类型字段中所有的html代码)?
这样你就可以搜索内容了。(比如:博客,塔林加,堆栈.)
如果将html代码存储在数据库中,那么如何才能进行查询,使其只搜索文本内容而不搜索html标记?
注:我有一个Laravel 4项目。(偏好使用雄辩)。
发布于 2015-07-09 18:05:47
所以现在你进入了搜索引擎类型的搜索。您可以使用DB简单性或基于性能的搜索。这个答案将假设你有足够的空间,而且你没有试图压缩尽可能多的空间。
DB简单性:
对于此方法,您实际上可以将文本(消毒)抛到DB中,并且在取出文本后,您可以打印它,而不需要卫生{ $txt }。至于搜索,您只需对整个列进行全文搜索,就可以搜索"%query%“。您需要查看一些原始查询,因为您可以对其进行一些优化。
性能:
在输入时,您有两个版本的文本,可以帮助打印和搜索。由于您不关心标记,所以只删除所有标记(粗略的正则表达式将删除尖括号中的任何内容,方括号本身替换(“<*>”,""))
也可以删除标点符号,因为这可能会扰乱搜索(你的,你是)。在对文本进行优化之后,您可以使用可打印的列并在搜索列上进行搜索。当您正在进行全文搜索时,它仍然会很慢,但比处理标记的速度更快。
另一种策略是将另一列作为唯一的word列,这通常可以称为标记。因此,在这种情况下,您还可以从前面的搜索文本中通过另一个筛选器提取数据,并删除对它们没有多大意义的所有常用单词(或者,它是)。现在,您可能有了一组与文章有可能有重复的半相关的单词列表,将重复的单词与计数合并,并在另一列中将它们排序从最大到最少。
你现在有多个粒度的搜索,取决于你的目标。您也可以使用模糊搜索来增强这一点,这确实会增加搜索时间,而且您可能需要创建特定的索引表来帮助减少搜索时间。
https://stackoverflow.com/questions/31307664
复制相似问题