mysql - 搜索功能

标签 mysql search full-text-search

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

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

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

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

有没有人对此有什么好的技术?

谢谢。

最佳答案

鉴于信息量很少:

如果您使用 MySQL 的 MyISAM 存储,您可以启用 FULLTEXT 索引并对其使用 FULLTEXT 搜索;见this link有关这方面的更多信息。

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

您有几个选择;要么您自己拆分关键字并搜索与这些关键字中的一个或多个匹配的条目,然后检查有多少关键字与排序匹配。您也可以将其包含在查询中,但随后您需要针对每个关键字进行查询,并将这些结果与父查询相结合。

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

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

祝你好运。

关于mysql - 搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491907/

相关文章:

java - 全文搜索是否支持无模式索引?

c++ - 使用整数列表文档进行全文搜索的最佳方法

php - 我如何在 laravel Blade 上实现此代码?

c# - 将 SQL 数据库转换为 .sql

linux - 我需要将文件中指定的模式列表与另一个文件进行比较,并仅报告包含模式的列的匹配部分

asp.net - 计算 Twitter 上特定单词的结果数

php - Symfony 和 Lucene

elasticsearch - 使用 Elasticsearch 搜索用户收藏夹

mysql - Rails Octopus Gem - 从站关闭时的主从复制连接行为

mysql - 在 MySQL 中按 RAND() 排序