仿google、百度的联想输入

前段时间公司有个需求,要求用户输入时能够像google、百度输入框那样提示相关信息。

思路很简单,通过ajax与后端交互获取结果集,问题是获得结果集如何足够快?我想问题的关键应该是在如何建索引,以及索引如何存储,才能检索速度够快。

和朋友讨论过基于汉字拼音等等方式,问题是自己写存储和检索的成本实在太高(其实是不会,现学现卖也不太现实)。

后来还是用lucene实现,自己写了个前缀分词器(姑且这么叫吧),例如:北京欢迎您,被分词为:北、北京、北京欢、北京欢迎、北京欢迎您几个词条,利用lucene进行索引和检索,单机访问速度也还可以接受,在高并发下还没测试。

但这种实现是典型的“头痛医头,脚痛医脚”的方式,在这里想问问大侠们有没有更好的方法呢?

用lucene实现的话?如果出现性能瓶颈,应该朝哪个方向优化?

相关推荐