我正在构建一个简单的搜索工具。
这个想法是它将搜索代码,标题,描述和类别的字段。
搜索类别和代码非常简单,因为它只是一个单词(%code%)。
但是,我不确定如何分解标题和说明以搜索用户输入的任何关键字?
有没有人有这方面的好技巧?
感谢。
答案 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更容易学习并开始使用。值得您考虑。