2011-05-12 93 views
0

我想在具有自定义购物车/后台系统的网站上实现自动建议功能。该系统允许输入客户可能提出的单词以及一系列建议;例如“cal”字样和“钙,卡路里”的建议。我有6000种产品,我对如何建立这样的清单感到困惑。如果我们以“钙”为例,我应该把它切成“ca”,“cal”,“calc”并且为它建议建议?另外我该如何处理拼写错误的单词,如“calsium”?有没有办法让这个过程自动化?请指教。谢谢。如何构建自动建议/自动完成的建议列表

回答

1

对于启动,只有当输入一定数量的字符时才有自动完成触发器。否则,你将要搜索一个,这可能会有比必要的更多的结果。

匹配的话,如果你使用一个数据库,他们通常支持LIKE比较的通配符匹配:

SELECT `name` FROM `products` WHERE `name` LIKE 'cal%' 

注意,你将要支持全文索引的表,或者你真的赢了不喜欢表演。如果可能的话,我还建议制作一个单独的数据库,然后再复制一份生产服务器的产品列表。这样你就不会占用主数据库的资源来自动完成。

对于拼写错误的单词,您可以尝试一些类似Levenshtein distance的内容,它显示了拼写两个单词的紧密程度。

1

自动建议可以使用像Trie,三元搜索树这样的数据结构来实现。访问数据库不是一个有效的解决方案和CPU密集型。