AJAX自动完成功能非常简单。但是,我想知道如何在SO上处理这样的智能标签建议。
澄清自动填充与建议之间的区别:
我想我需要在标签中进行全文搜索(所有字母都被编入索引,而不仅仅是单词)。对于有限数量的标签(甚至客户端),使用正则表达式或其他模式是没有问题的。
但是如何为大量标签实现此功能?
是否有任何特殊原因(除了URL)SO上的标签是破折号的?标签中的Unicode字符怎么样?
我使用以下列将标记存储在表中:id,tagname。 我的SQL查询返回包含以下字段的对象:id,tagname,count
(我使用Doctrine ORM和pgsql作为默认的db驱动程序。)
答案 0 :(得分:3)
我会在每个按键时通过REGEXP从数据库中选择它们。我在我的网站上做了这个并没有prefrormance问题(我没有重载服务器的想法)。如果您不喜欢这个想法,我会兑现所有1-5个字母组合,用户可以在单独的表格中每天输入并刷新它们。如果此表被索引,那么您的实现速度非常快。
详细说明第二个方面:
简要说明:1。制作一个表SEARCHTABLE,表示关键字(限制为3-4个字母)和标签的主要ID之间的1-n关系。 2.两个领域的指数。 3.每次用户进行搜索时,请查看SEARCHTABLE,如果组合在那里,请使用 - 非常快,因为所有内容都已编入索引。如果没有进行正则表达式搜索并将所有结果放入SEARCHTABLE。
注意:
希望现在更加全面。