谷粒商城学习——P122 es分词&安装ik分词

摘要:
弹性搜索提供了许多内置分词器,可用于构建自定义分析器。关于分词系统:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/analysis.html标准,按空格拆分POST _分析{“token”:“standard”,“text”:“Hellotheworld”。“}执行结果:{”token“:[{”令牌“:”Hello“,”start_offset“:0,”end_offset”:5,”type“:”“,”position“:0},{”代币“:”the“,”start_offset“:6,”end_offset“:9,”type”:“”,”position“:1},”令牌““:”world“,“start_offset:10,”end-offset“”:15,“type”:”“,“position:2}]这是一个很好的例子}但是es中默认的分词系统支持英语,中文需要安装自己的分词系统,即ik分词系统https://github.com/medcl/elasticsearch-analysis-ik/releases检查es版本以安装具有相应版本号的ik断字器[vagrant@10 ~]$ curlhttp://192.168.56.10:9200/{“name”:“3cafb1a4b1b3”,“cluster_name”:“elasticsearch”,”cluster_uuid“:”0cNA2l38RFK6LMHislSvNg“,”version“:{“number”:”7.4.2“,“build_flavor”:”default“,”build_type“:“docker”,”build_hash”:“2f90bbf7b93631e52bfb59b3b0049cb44ec25e96”,“build_date”:”2019-10-28T20:40:44.881551Z“,”uild_snapshot“:false,”lucene_version“:“8.2.0”,“minimum_wire_compatibility_version”:“6.8.0”,”minimum_index_compatibility _version“:“6.0.0-beta1”},“tagline”:“YouKnow,forSearch”}在git上看不到v7.4.2版本。尝试直接输入地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip下载后,将其解压缩到es容器中的plugins目录并使用它。

一个tokenizer(分词器)接收一串字符流,将之分割为独立的tokens(词元,通常是独立的单词),然后输出tokens流

例如,whitespace tokenizer遇到空白字符时分割文本,它会将I am zyn分割为【I、am、zyn】。

该tokenizer(分词器)还负责记录各个terms(词条)的顺序或position位置(用于phrase短语和word proximity词近邻查询),以及term(词条)所代表的原始word(单词)的start(起始)和end(结束)的character offsets(字符串偏移量)(用于高亮显示搜索的内容)。elasticsearch提供了很多内置的分词器(标准分词器),可以用来构建custom analyzers(自定义分词器)。

关于分词器: https://www.elastic.co/guide/en/elasticsearch/reference/7.6/analysis.html

 标准分词器 standard,按空格分

POST _analyze
{
  "tokenizer": "standard",
  "text": "Hello the world."
}

 执行结果:

{
  "tokens" : [
    {
      "token" : "Hello",
      "start_offset" : 0,
      "end_offset" : 5,
      "type" : "<ALPHANUM>",
      "position" : 0
    },
    {
      "token" : "the",
      "start_offset" : 6,
      "end_offset" : 9,
      "type" : "<ALPHANUM>",
      "position" : 1
    },
    {
      "token" : "world",
      "start_offset" : 10,
      "end_offset" : 15,
      "type" : "<ALPHANUM>",
      "position" : 2
    }
  ]
}

但是es中默认的分词器,都是支持英文的,中文需要安装自己的分词器

ik分词器https://github.com/medcl/elasticsearch-analysis-ik/releases

查看es版本以安装对应版本号的ik分词器

[vagrant@10 ~]$ curl http://192.168.56.10:9200/
{
  "name" : "3cafb1a4b1b3",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "0cNA2l38RFK6LMHislSvNg",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

 git上看不到v7.4.2版本了,试了下直接输入地址就下了

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

下载完后,解压到es容器内部plugins目录中(或es的对应的映射目录)就可以使用了。

XSHELL和xftp正版免费下载参考:https://www.cnblogs.com/qingshan-tang/p/12855807.html

 我这下载太慢,转而又回去命令安装了===!!!

vagrant ssh连接虚拟机后,su root转管理员,安装.wget

vagrant ssh
su root
vagrant
yum install wget

谷粒商城学习——P122 es分词&amp;安装ik分词第1张

 安装完wget后,转到es /plugins目录安装ik

[root@10 /]# cd /mydata/elasticsearch/plugins/
[root@10 plugins]# wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

安装unzip解压命令,然后建ik目录,解压到ik中,然后删除解压过的zip

yum install unzip
mkdir ik
cd ik
unzip elasticsearch-analysis-ik-7.4.2.zip
rm elasticsearch-analysis-ik-7.4.2.zip

装ik文件夹可读可写可执行

[root@10 plugins]# chmod -R 777 ik/

查看ik分词器是否安装完成:

进入es控制台:

谷粒商城学习——P122 es分词&amp;安装ik分词第2张

docker exec -it 3caf /bin/bash

谷粒商城学习——P122 es分词&amp;安装ik分词第3张

  显示ik证明ik分词器安装成功了,然后退出es容器重启es

试下效果:

ik_smart:智能分词

POST _analyze
{
  "tokenizer": "ik_smart",
  "text": "我是中国人"
}

结果:

{
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "中国人",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

ik_max_word:最大单词组合

POST _analyze
{
  "tokenizer": "ik_max_word",
  "text": "我是中国人"
}

结果:

{
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "中国人",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "中国",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "国人",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 4
    }
  ]
}

免责声明:文章转载自《谷粒商城学习——P122 es分词&amp;amp;安装ik分词》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇thinkphp获取ip地址及位置信息CVAT 用户指南下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringCloud-OAuth2(四):改造篇

本片主要讲SpringCloud Oauth2篇的实战改造,如动态权限、集成JWT、更改默认url、数据库加载client信息等改造。 同时,这应该也是我这系列博客的完结篇。 关于Oauth2,我也想说几句: 如果真的要应用到企业级项目当中去,必须要进行充足的准备,因为默认的配置、UI等很多都不是通用的(不适用于各个公司), 但是这套框架还好留了很多适配...

[python]django rest framework写POST和GET接口

版本声明 python3.6.5 Django-2.0.6 djangorestframework-3.8.2 mysqlclient-1.3.12 1.写一个登录接口,不多说,直接上代码 login_models.py # -*- coding: utf-8 from django.db import models # Create your mode...

使用COOKIE实现登录 VS 使用SESSION实现登录

注:本文使用的代码基于PHP,其他语言逻辑同理。 一:使用COOKIE实现登录验证 使用cookie实现登录的方式,主要通过一些单向的加密信息进行验证。比如admin用户登录了之后,服务端生成一个cookie值:admin_1533006028_ bbf2c2b1ec5cfb62d0a30438d8d0305c ,这个cookie值包含用户名,cookie...

对ElasticSearch主副分片的理解

ES索引中主副分片的分布: 1:当新建一个索引库时,可以预先设置其会被分为N个分片(主分片),同时可以为每个主分片产生N个备份分片(副分片)。 2:N个主分片随机分布在集群的多个节点中;N个副分片也是随机的分布在集群的多个节点中,但是副分片和其主分片不会在一个节点上。 ES索引中主副分片的作用: 1:当在该索引库中新增一个文档时,会通过计算该文档ID的哈希...

H5 及 web 页面微信授权登录流程

一、事先准备工作 配置参数测试公众平台信息(测试号相关配置示例): 1、打开公众平台的测试账号 2、配置js接口安全域名 3、扫码关注测试公众号 4、修改网页授权地址 配置授权回调的域名,至于什么是OAuth2.0,大家自行百度吧。这里的域名也要与上面的域名一致。配置成功会有通过安全监测的提示,这里不上截图了。 注意: 1、这里填写的是域名(是一...

谷粒商城安装ES及入门(十六)

102、全文检索-ElasticSearch-简介 --109、全文检索-ElasticSearch-入门-删除数据&bulk批量操作导入样本测试数据  安装 [root@play ~]# docker pull elasticsearch:7.4.2 7.4.2: Pulling from library/elasticsearch d8d02d...