wklken / suggestion

搜索输入框-下拉提示(推荐), 提示词根据权重排序.基于double-array-trie的darts, golang语言实现.
https://github.com/wklken/suggestion
180 stars 51 forks source link

运行suggest.py会报错 #6

Closed Imagle closed 10 years ago

Imagle commented 10 years ago

错误信息如下,对python不是特别的熟悉,求指导。

============ test2 =============== Traceback (most recent call last): File "suggest.py", line 290, in print u'search 植物' UnicodeEncodeError: 'latin-1' codec can't encode characters in position 7-8: ordinal not in range(256)

Imagle commented 10 years ago

我将这个print u'search 植物'中的u去掉,并且把下面的print key, node.weight改成print key.encode('utf-8'), node.weight就好了。

c9n commented 10 years ago

附上你执行环境才能定位问题所在。

wklken commented 10 years ago

python 编码问题, 可以不用在意.... 后续打算将easymap实现迁移出去独立一个项目, 只保留 double-array-trie的golang实现

Imagle commented 10 years ago

en ,最近做个项目就是下拉框的项目,本打算用c++实现trietree来搞一个,看见你这个项目合适借鉴过来用用。谢谢。

Thanks, Jerry 王

在 2014年11月3日 下午6:12,wklken notifications@github.com写道:

python 编码问题, 可以不用在意.... 后续打算将easymap实现迁移出去独立一个项目, 只保留 double-array-trie的golang实现

— Reply to this email directly or view it on GitHub https://github.com/wklken/suggestion/issues/6#issuecomment-61458579.

Imagle commented 10 years ago

你好,您这个每次访问的时候都需要重新建一个tree,有什么好的方法可以先建个tree保存到内存中,查询的时候直接去内存上的tree查找? 我把tree设为全局变量,在函数外建tree,但是速度还是比较慢。 数据10W条的时候,第一次响应时间为6.54s,是有点大的,之后访问的话响应时间在3ms左右,这个是可以接受的; 数据有40w条的时候,就起不起来会出错,有可能是我机器的原因;

wklken commented 10 years ago

golang darts实现是有存到硬盘的, 可以不重建....(有个bug, 已修复但尚未提交)

在接口套一层cache, 进一步提升性能

wklken commented 10 years ago

golang double-array-trie此次已经更新,修复bug, 并且提供test_web.go, 运行有一个测试页面可以直接查看效果

可以看下最新的readme.md