我想实现自动完成(自动建议)- 当用户开始输入单词时,会弹出建议。
我希望能够根据提出请求的用户呈现建议列表。
例如,我有一个书单,我知道每个用户读过什么书,喜欢什么书,读过什么语言。 我希望 autosuggest 能够给出一个建议列表,仅针对用户会喜欢的书籍进行过滤,并使用用户的语言并根据用户的喜好进行排名。
有人知道适合这个的数据结构吗?大多数自动完成算法都使用树,但我不想为每个用户使用个人数据结构,因为维护它会非常耗费资源。
最佳答案
使用书籍的数据库(例如 MySQL)及其属性,如语言:法语、类型:神秘、作者:让-克劳德等。用户对书籍的偏好可以在配套数据库中,或者用户可以从网页上的选项中进行选择。
在网页上,使用 jQuery UI 自动完成小部件。使用数据:选项将用户的书籍偏好传递给创建自定义查询的 php 查询管理器,例如,语言:法语,类型:神秘,作者:让-克劳德,触发 MySQL 中的查询,并返回书名将这些属性通过 JSON 发送到网页。自动完成创建一个下拉框,用户可以从中进行选择。
许多人使用此架构或其变体。
关于algorithm - 个性化自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689817/