ES中使用IK分词,统计词频!

1.查询分词结果

http://localhost:9200/[索引名]/ _analyzePOST { "analyzer": "standard",//es默认分析,对英文很好分词,中文全部拆分成单个字进行索引--》IK分词了解一下:ik_smart、ik_max_word "text": "晚点" }

【ES中使用IK分词,统计词频!】2.设置ik分词:
一、即将创建的索引使用全局setting设置ik分词器:
http://localhost:9200/indexPUT {"settings":{"index":{"analysis.analyzer.default.type":"ik_max_word"}}}

3.对于yyyy-MM-dd HH:mm:ss格式的数据存储[使用date类型,转成long型存储],因为es目前date类型只支持yyyy-MM-dd和2015-01-01T12:10:30Z两种格式,无法存入yyyy-MM-dd HH:mm:ss,lucene底层其实也是格式化成long型存储的,建议选择date类型或者long型存储时间!
4.kibana中调用如下命令:
#查询点评内容分词词频统计
GET socialcontent/words/_search { "size" : 0, "aggs" : { "messages" : { "terms" : { "size" : 1000, "field" : "content", "include" : "[\u4E00-\u9FA5][\u4E00-\u9FA5]",//两个文字的词(可选) "exclude" : "女.*"//过滤含有女的(可选) } } }, "highlight": { "fields": { "desc": {} } } }

#设置属性为fielddata=https://www.it610.com/article/true
POST star/_mapping/haha { "properties": { "content": { "type": "text", "fielddata": true } } }

#手动创建索引类型和属性
PUT socialcontent { "mappings": { "words": { "properties": { "commentId":{ "type":"long" }, "userId":{ "type":"long" }, "content": { "type": "text", "analyzer": "ik_max_word",//设置ik分词 "fielddata" :true//设置fielddata为true,方便聚合统计,但是要小心jvm heap过高问题,会在segment中加载到heap中一直保留,小心oom! }, "create_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" }, "update_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } }

    推荐阅读