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"
}
}
}
}
}
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售