【发布时间】:2010-06-21 20:58:02
【问题描述】:
我想建立一个产品搜索引擎。
我正在考虑使用 google-site-search,但它确实会搜索 Google 对您网站的索引。我不想搜索那个。我想在我的数据库中搜索给定关键字的特定表(所有字段,甚至是用户从未见过的字段)。
但我希望这个搜索尽可能可靠,我想知道是否已经有一些东西可以使用?如果不是自己制作的最好方法是什么?
【问题讨论】:
我想建立一个产品搜索引擎。
我正在考虑使用 google-site-search,但它确实会搜索 Google 对您网站的索引。我不想搜索那个。我想在我的数据库中搜索给定关键字的特定表(所有字段,甚至是用户从未见过的字段)。
但我希望这个搜索尽可能可靠,我想知道是否已经有一些东西可以使用?如果不是自己制作的最好方法是什么?
【问题讨论】:
【讨论】:
Sphinx 也可以解决您的其他问题:stackoverflow.com/questions/3088433/…
我会首先关注 MySQL 全文搜索。看看这些链接:
这是来自第一个链接的 sn-p:
全文搜索使用 MATCH() ... 反对语法。 匹配() 采用逗号分隔的列表 命名要搜索的列。 AGAINST 需要一个字符串来搜索, 和一个可选的修饰符 指示要搜索的类型 执行。搜索字符串必须是 文字字符串,而不是变量或 列名。有三种类型 全文搜索:
【讨论】:
至于已经存在的东西,看看这些:
【讨论】:
SELECT * FROM table WHERE value REGEXP 'searchterm'
允许您使用许多熟悉的搜索技巧,例如 +、"" 等
这是 MySQL 的原生函数。无需使用可能更快的新语言或插件,但也有额外的时间进行维护、故障排除等。
这可能比做一些基于 C++ 的疯狂混搭要慢一些,但用户通常不会注意到毫秒之间的差异......
【讨论】:
您可能还想研究的一件事(如果您不打算使用 sphinx)是 stemming your keywords。这将使匹配关键字更容易一些(因为词干 'cheese' 和 'cheesy' 最终会产生相同的词干词),从而使您的关键字匹配更加灵活。
【讨论】: