查找关键字的最快方法。任何语言,任何系统

时间:2009-06-16 19:58:24

标签: database lookup keyword performance

每天我有500万个左右的唯一关键字,每个关键字都有一个展示次数。我希望能够通过某些单词来查看这些关键字,例如,如果我有“ipod nano 4GB”,我希望能够在我搜索“ipod”,“nano”或“4GB”时将其拉出来。 mySQL似乎无法为我想要的东西处理那么多数据,我已经尝试过伯克利但是它看起来会因太多行崩溃而且速度较慢。想法?

5 个答案:

答案 0 :(得分:2)

我对the Xapian search engine library感到非常满意。虽然听起来对你的场景来说可能有些过分,但也许你只想把你的数据放到一个大的哈希表中,就像memcached一样?

答案 1 :(得分:1)

你可以在mssql上尝试免费文本。 http://msdn.microsoft.com/en-us/library/ms177652.aspx

示例查询:

SELECT TOP 10 * FROM searchtable 
INNER JOIN FREETEXTTABLE(searchtable, [SEARCH_TEXT], 'query string') AS KEY_TBL
ON searchtable.SEARCH_ID = KEY_TBL.[KEY] 
ORDER BY KEY_TBL.RANK DESC

约什

答案 2 :(得分:1)

Lucene索引可能有效。我之前用它来制作相当大的数据集。它是用java开发的,但也有.NET版本。

答案 3 :(得分:0)

你试过fulltext search in MySQL吗?因为如果你尝试使用LIKE比较,我会明白为什么它很慢:)。

答案 4 :(得分:0)

PostgreSQL的工作负载和搜索模式具有集成的全文搜索功能(从8.4开始集成,现在处于RC状态。此前它是一个贡献模块。)