如题,我比较在意实际应用中的选择,如果是一个个人博客,提供一个搜索功能,那是数据库的查询好还是全文检索的好?已经了解到有那么几个全文检索的 gem,但是不知道何时该用搜索方式。
如果数据量不大可以试试 like,like 就是遍历文本进行匹配,数据越多速度越慢。如果是倒排的搜索的化,数据是会以倒排结构单独存储,一般量级的搜索速度会很快。如果你要对博客进行全文检索,如果有简单的全文检索 gem,就不要用 like 了。
如果说一个个人博客,访问量不大,数据量小时可以 like 的。 区别很大,like 只是模糊匹配,用不大索引。全文搜索你可以大致理解成把里面的每个词列出来,和对用的表主键建立了映射。所以全文索引还可以统计一些东西。
个人博客可以采用 Google 的自定义搜索功能。
#3 楼 @uudui 什么是 google 的自定义搜索功能?如博客园里那种 google 搜索嘛?
#4 楼 @Ryan 你试试本社区的搜索功能就知道了。
like 只有在建了二叉索引的情况下做前缀匹配会快,其他情况都比全文索引的查找慢
个人博客的数据量,直接把全部内容放内存里自己正则匹配下好了...
#6 楼 @luikore 好霸气的做法。。。
个人理解全文检索应该不止是简单的匹配,算法比较多。一般都会有一些分词算法,更智能,性能高非常多。 会有一些功能,例如去除停用词,计算文档权重等 like 只是在数据量少的时候才会用。只支持完全匹配吧。。