记录曲折的ElesticSearch+ES环境安装过程 (四)——IK分词器安装配置篇

源博客地址:www.ozyblog.top

介绍

IK Analysis插件将Lucene IK分析器集成到elasticsearch中,支持自定义词典

es分词原生只能支持英文分词,IK支持中文分词

安装

先创建目录,ik是每个es都要创建:

root@ozy-linux:/home/ozy/Downloads# mkdir -p /usr/local/elasticsearch/es1/elasticsearch-7.4.2/plugins/ik
root@ozy-linux:/home/ozy/Downloads# mkdir -p /usr/local/elasticsearch/es2/elasticsearch-7.4.2/plugins/ik
root@ozy-linux:/home/ozy/Downloads# mkdir -p /usr/local/elasticsearch/es3/elasticsearch-7.4.2/plugins/ik

然后解压:

unzip elasticsearch-analysis-ik-7.4.2.zip -d /usr/local/elasticsearch/es1/elasticsearch-7.4.2/plugins/ik/
unzip elasticsearch-analysis-ik-7.4.2.zip -d /usr/local/elasticsearch/es2/elasticsearch-7.4.2/plugins/ik/
unzip elasticsearch-analysis-ik-7.4.2.zip -d /usr/local/elasticsearch/es3/elasticsearch-7.4.2/plugins/ik/

授权:

chown -Rf es:es /usr/local/elasticsearch/

重启ES,测试

测试 创建索引库:

后记:这种curl容易语法出错,建议用后面的head插件,这种方法看看就好

curl -X PUT http://localhost:9200/ik -H 'Content-Type:application/json' -d'{   
            "settings": {       
            "number_of_shards":  5,       
            "number_of_replicas":  1 
            } 
}'

第一个参数是分片数,第二个参数是副本数

好像出错了,设置不起作用,还是用head插件吧:

使用

设置mapping

Analyzer分词配置解释:

  • ik_smart:粗粒度分词,比如中华人民共和国国歌,会拆分为中华人民共和国,国歌;
  • ik_max_word:细粒度分词,比如中华人民共和国国歌,会拆分为中华人民共和国,中华人民, 中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌,会穷尽各种可能的组 合。

Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍。这些文本会被 分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许 ES来检索这些词语。 Text 数据类型不能用来排序和聚合。

Keyword 数据类型用来建立电子邮箱地址、姓名、邮政编码和标签等数据,不需要进行分词。可以 被用来检索过滤、排序和聚合。 keyword 类型字段只能用本身来进行检索。

当然还有其他类型,后面再说

创建mapping:

使用head来请求

{
  "properties": {
    "content": {
      "type": "text",
      "analyzer": "ik_max_word",
      "search_analyzer": "ik_smart"
    }
  }
}

插入数据:

curl -XPOST http://localhost:9200/ik/_create/1 -H 'ContentType:application/json' -d'
 {"content":"美国留给伊拉克的是个烂摊子吗"} 
' 
curl -XPOST http://localhost:9200/ik/_create/2 -H 'ContentType:application/json' -d'
 {"content":"公安部:各地校车将享最高路权"} 
' 
curl -XPOST http://localhost:9200/ik/_create/3 -H 'ContentType:application/json' -d'
 {"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"} 
' 
curl -XPOST http://localhost:9200/ik/_create/4 -H 'ContentType:application/json' -d'
 {"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"} 
' 

实测我的电脑还是不能用curl,老老实实用head吧:

查询:

如果需要高亮显示匹配的内容:

{
  "query": {
    "match": {
      "content": "中国"
    }
  },
  "highlight": {
    "pre_tags": [
      "<font color=red>"
    ],
    "post_tags": [
      "</font>"
    ],
    "fields": {
      "content": {}
    }
  }
}

实际业务肯定是从数据库中拿数据查询,所以linux需要安装mysql,下一篇安装mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值