我正在使用 jQuery 的自动完成功能实现类似自动完成功能的“Google Suggest”标签搜索。
我需要为 jQuery 提供一个 Web 服务,根据用户输入的内容给它一个建议列表。我看到了两种实现 Web 服务的方法:
1)只需将所有标签存储在数据库中,并使用用户输入作为前缀搜索数据库。这很简单,但我担心延迟。
2) 使用进程内尝试存储所有标签并搜索匹配结果。由于一切都在进行中,我希望这会有更低的延迟。但是有几个困难: - 初始化 trie on 进程启动的好方法是什么?假设我将标签数据存储在数据库中并在我第一次启动该过程时检索它们并将它们变成一个 trie。但我不确定如何。我正在使用 Python/Django。-当用户创建新标签时,我需要将新标签插入到 trie 中。但是假设我有 5 个 Django 进程,因此有 5 次尝试,我如何告诉其他 4 次尝试他们也需要插入一个新标签?-如何确保 trie 是线程安全的,因为我的 Django 进程将被线程化(我正在使用 mod_wsgi)。或者我不必担心因为 Python 的线程安全?吉尔?- 有什么方法可以将标签的使用频率存储在 trie 中?我如何判断标签的字符串何时结束以及频率何时开始 - 例如。如果我将apple213存储到trie中,它是频率为213的“apple”还是频率为13的“apple2”?
对上述问题的任何帮助或对不同方法的任何建议将不胜感激。