个性化自动完成

时间:2011-07-14 07:27:43

标签: algorithm autocomplete filter ranking autosuggest

我想实现自动完成功能(自动建议) - 当用过的开始输入单词时,会弹出建议。

我希望能够根据提出要求的用户呈现建议列表。

例如,我有一份书籍清单,我知道每个用户他阅读,喜欢和阅读的语言是什么书。 我希望autosuggest能够提供仅针对用户喜欢的书籍以及他的语言进行过滤的建议列表,并根据他的口味进行排名。

有人知道适合这种情况的数据结构吗?大多数自动完成算法使用树,但我不想为每个用户使用个人数据结构,因为维护它将非常耗费资源。

1 个答案:

答案 0 :(得分:1)

使用具有其属性的书籍数据库(例如MySQL),例如语言:法语,类型:mystery,作者:Jean-Claude,等等。书籍的用户首选项可以位于配套数据库中,或者用户可以从网页上的选择选项中进行选择。

在网页上,使用jQuery UI Autocomplete小部件。使用data:选项将用户book首选项传递给创建自定义查询的php查询管理器,例如语言:French,type:mystery,author:Jean-Claude,在MySQL中触发查询,并返回书名通过JSON将这些属性添加到网页中。自动填充功能会创建一个下拉框,用户可以从中进行选择。

许多人使用这种架构或其变体。