搜索功能

时间:2011-06-27 11:07:47

标签: mysql search full-text-search

我正在构建一个简单的搜索工具。

这个想法是它将搜索代码,标题,描述和类别的字段。

搜索类别和代码非常简单,因为它只是一个单词(%code%)。

但是,我不确定如何分解标题和说明以搜索用户输入的任何关键字?

有没有人有这方面的好技巧?

感谢。

2 个答案:

答案 0 :(得分:2)

鉴于信息量很少:

如果您正在使用MySQL的MyISAM存储,您可以启用FULLTEXT索引并使用FULLTEXT搜索;有关详细信息,请参阅this link

但是,如果您正在使用InnoDB(我也在我的数据库中使用它),则无法在MySQL中直接启用它。

你有几个选择;您自己拆分关键字并搜索与这些关键字中的一个或多个匹配的条目,然后检查与订购匹配的关键字数量。您也可以在查询中包含该内容,但之后您需要对每个关键字进行查询,并将这些结果与父查询相结合。

由于性能和灵活性,我最终选择的另一个选项是使用SOLR服务器并使用php solr_client(参见the php manual on it)。 SOLR服务器将给出一些(相当简单的)配置文件索引数据库,并允许在任何索引字段上进行全文搜索。有关设置SOLR服务器的更多信息,请参见SOLR手册:tutorial

当然还有许多其他方法和工具。以上只是我过去使用的一些或者我仍然在使用(我真的很高兴使用solr,但这是个人的,我猜)。

祝你好运。

答案 1 :(得分:0)

你想要的不是MySQL做得很好的事情。 Yhn提到了一些选择。

MySQL的 FULLTEXT 索引并不是很受欢迎。

将文本分解为关键字并形成链接回原始项目的索引表可以正常工作。但实际上,这样做就像开始构建自己的搜索引擎一样。

比您可能构建的搜索引擎要好得多。 Yhn提到了 SOLR ,这非常好,但我想提一下我使用的Sphinx Search。 SOLR有一些Sphinx没有的有趣功能,但我的印象是Sphinx更容易学习并开始使用。值得您考虑。