利用solr来处理用户画像问题

来源:互联网 发布:mysql commit 编辑:程序博客网 时间:2024/06/10 13:09

用户画像的基本思想就是给用户贴上一系列的标签,这些标签都是高度凝练的特征标识,是我们认识和分析用户的维度。比如对一个人来说,典型的一些特征如: 性别,年龄段,婚姻状况,年收入范围,是否有车有房,户口所在地等等。

对用户打标签的目的是进行更有针对性的分析,比如想知道25岁以下结婚并且有车的有多少人,然后给这部分群体进行一些定制化的推荐。通过不同标签的组合来分析海量数据可以让我们得到很多更有意义的信息。

问题来了,当数据量非常庞大(比如1000万用户)的时候如何存储数据和设计数据分析方法就是一个问题了。因为用户画像往往是各种标签随机组合而且要求响应要快,性能要好。这里分享同事想到的一个方法,使用solr来解决这个问题。

想法很简单,就是以用户作为solr的主键,然后加上一个标签的文本字段,里面记录该用户的各种标签,比如:

名称                                标签---------------          --------------------------------------------------------------------------------------------xxx科技公司                   成立5年以下, 海归创业, 纳税额低于50万, 员工50以内, 外包服务业


如果各标签之间打算简单的以逗号分割,solr自身提供了 PatternTokenizerFactory,我们可以直接拿来使用,不需要自己去写分词器

可以在solr的schema.xml中加入以下配置,solr自动会根据逗号进行分词

<fieldType name="text_userimg" class="solr.TextField">  <analyzer>  <tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,\s*"/></analyzer></fieldType>  
利用solr的控制台我们可以看到分词的效果:



这样我们只需要根据标签查询solr就可以了,使用多个标签查询对于solr来说就是根据分词进行过滤,性能上完全可以满足一般的需求。


0 0
原创粉丝点击