我正在建立一个简单的搜索设施。
它的想法是它将搜索代码,标题,描述和类别字段。
搜索类别和代码非常简单,因为它只有一个单词(%code%)。
然而,我不确定如何分解标题和描述来搜索用户输入的任何关键字?
有没有人对此有什么好的技巧?
谢谢。
发布于 2011-06-27 19:15:12
考虑到信息量很小:
如果使用来自MySQL的MyISAM存储,则可以启用全文索引并对其使用全文搜索;有关这方面的更多信息,请参阅this link。
但是,如果您正在使用InnoDB (我也在我的数据库上使用它),则不能在MySQL中直接启用它。
您有几个选择;要么自己拆分关键字,然后搜索与这些关键字中的一个或多个匹配的条目,然后检查有多少关键字符合排序。您也可以将其包含在查询中,但是您需要为每个关键字创建一个查询,并将这些结果与父查询组合在一起。
另一种选择是使用SOLR服务器并使用php solr_client (参见the php manual on it),这也是我出于性能和灵活性的考虑而最终选择的选择。在给定几个(相当简单)配置文件的情况下,SOLR服务器将为数据库建立索引,并允许对任何索引字段进行全文搜索。关于设置SOLR服务器的更多信息可以在SOLR:tutorial的手册中找到。
当然,还有许多其他的方法和工具。以上只是我过去使用过或仍在使用的一小部分(我真的很喜欢使用solr,但我想这是我个人的事情)。
祝好运。
发布于 2011-06-27 20:39:36
你想要的不是MySQL做得很好的东西。Yhn提到了一些选择。
MySQL的全文索引不受欢迎是有充分理由的。
将你的文本分解成关键字,并形成它们的索引表,然后链接回原始项目,这是可行的。但从本质上讲,这样做就像开始建立自己的搜索引擎一样。
比你可能构建的搜索引擎更好的搜索引擎是可用的。Yhn提到了SOLR,它非常好,但我还想提一下我使用的。SOLR有一些Sphinx没有的有趣特性,但我的印象是Sphinx更容易学习和入门。这是值得你考虑的。
https://stackoverflow.com/questions/6491907
复制相似问题