每天我都有大约500万个独特的关键词,每个关键词都有一个印象计数。我希望能够通过某些关键字来查找这些关键字,例如,如果我有"ipod nano 4 4GB“,我希望能够在搜索"ipod”、"nano“或”4 4GB“时将其拉出。mySQL似乎不能处理我想要的那么多数据,我已经尝试过伯克利,但它似乎因为太多的行而崩溃,而且速度更慢。想法?
发布于 2009-06-16 20:18:54
我对the Xapian search engine library很满意。尽管这听起来对您的场景来说可能有些夸张,但您可能只想将数据放到一个很大的哈希表中,比如memcached
发布于 2009-06-16 20:02:15
您可以在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
乔希
发布于 2009-06-16 20:04:31
Lucene索引可能会起作用。我以前在相当大的数据集上使用过它。它是用java开发的,但也有一个.NET版本。
https://stackoverflow.com/questions/1003626
复制相似问题