不为失败找理由,要为成功找方法。

用es做搜索引擎,大家是怎么处理热搜词的?

Elasticsearch | 作者 zttech | 发布于2016年01月19日 | 阅读数:22090

RT
我能想到的是将所有的搜索词放入一个文档中,然后基于termvectors取top(term_freq)作为结果。但ik分词似乎对termvectors不友好,统计不准确。
不知道大家是怎么处理的?
已邀请:

zttech

赞同来自: JeremyWang

对日志进行统计,到最后还是具体到对字段的string进行词频统计,比如有下面5个文档,都是用户搜索的内容:
POST /index/fulltext/1
{"content":"中国人民"}
POST /index/fulltext/2
{"content":"中国 美国"}
POST /index/fulltext/3
{"content":"中国人民币"}
POST /index/fulltext/4
{"content":"美元币值 中国影响"}
POST /index/fulltext/5
{"content":"国家GDP"}

如果要统计热词的话,那么显然“中国”应该排在第一位,其次应该是“人民”,这样的情形怎么统计出来这些词频高的词呢?
匿名用户

匿名用户

赞同来自: Merrizee

这种东西应该采用实时流式处理吧,ES 实时分析 top 那得多慢啊,加入用户量1个亿,几十亿数据,最热词?
 

medcl - 今晚打老虎。

赞同来自:

热搜词是统计的用户搜索频率的,和倒排里面的term_freq是两码事,一般是记录用户的查询请求日志,然后进行统计分析

zttech

赞同来自:

 
但是中文这块termvectors不是一点弱,而是非常弱

jiakechong1642

赞同来自:

我们是实时解析日志流的

要回复问题请先登录注册