elasticsearch6.2.3 安装以及配置IK 使用

虽然es在配置上要比solr简单许多,也更加灵活,基本上没有什么多余的配置,官网下载好后就可以直接使用,附一个下载地址https://www.elastic.co/downloads/past-releases


注意:ES版本差异贼大,所以尽量保证版本一致
在测试中,所有的演示我均通过HTTP来请求,测试工具我采用postman


首先将官方下载的ES解压一下我们可以看到如下目录(linux下大同小异),
elasticsearch6.2.3 安装以及配置IK 使用_第1张图片
然后我们通过命令行进入bin目录下执行elasticsearch命令,ES就完美运行了,地址栏中输入127.0.0.1:9200就可以看到如下界面,说明运行成功。
elasticsearch6.2.3 安装以及配置IK 使用_第2张图片
看到这里是不是感觉很简单呢,,,下面我们来进行安装bug练习,,,不对,是安装ik分词器。
首先先说一下为什么要分词,我们随便找一段英语看一下他的分词效果,可以看到分词效果相对来说还是不错的
elasticsearch6.2.3 安装以及配置IK 使用_第3张图片
但是呢我们换成中文试一下,同样的查询条件,同样的HTTP请求,汉字却被拆分成一个一个的文字了
这里写图片描述
elasticsearch6.2.3 安装以及配置IK 使用_第4张图片
很明显,这并不是我们想要的效果,所以我们需要安装一个支持中文的分词器,这里我们可以使用ik进行分词,附IK地址https://github.com/medcl/elasticsearch-analysis-ik
版本号与ES一致,版本号与ES一致,版本号与ES一致
重要的事情说三次,只要差一个小版本ik就不能用了,首先,我们解压下载好的压缩文件,然后在ik的根目录下(包含pom.xml)执行mvn install 命令(下载依赖),不过需要提前安装maven,maven安装并不难大家可以在网上搜索一下,然后将生成的\target\releases\elasticsearch-analysis-ik-6.2.3.zip解压到ES的plugins\ik目录下,直接启动ES,不需要加配置文件,之前的ES中需要加配置文件,但这个版本并不需要。
我们尝试运行一下,我将请求体换成了:

{   
    "analyzer": "ik_max_word",
    "text":"看到这里是不是感觉很简单呢" 
}

展示效果:

{
  "tokens": [
    {
      "token": "看到",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "这里是",
      "start_offset": 2,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "这里",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "是不是",
      "start_offset": 4,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "不是",
      "start_offset": 5,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "感觉",
      "start_offset": 7,
      "end_offset": 9,
      "type": "CN_WORD",
      "position": 5
    },
    {
      "token": "很简单",
      "start_offset": 9,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 6
    },
    {
      "token": "简单",
      "start_offset": 10,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 7
    },
    {
      "token": "呢",
      "start_offset": 12,
      "end_offset": 13,
      "type": "CN_CHAR",
      "position": 8
    }
  ]
}

ik有两种模式,上面的方式为最大方式,它会劲量详细的拆分,我们看到,“很简单”算一个词组,简单也算一个词组,而另一种方式为ik_smart方式
请求体:

{   
    "analyzer": "ik_smart",
    "text":"看到这里是不是感觉很简单呢" 
}

结果 :可以看到他只要分词过的字符就不会参与到下一次分词中了

{
  "tokens": [
    {
      "token": "看到",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "这里",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "是不是",
      "start_offset": 4,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "感觉",
      "start_offset": 7,
      "end_offset": 9,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "很简单",
      "start_offset": 9,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "呢",
      "start_offset": 12,
      "end_offset": 13,
      "type": "CN_CHAR",
      "position": 5
    }
  ]
}

好了这就是关于elasticsearch安装以及IK的流程,由于篇幅太长,后续我会发表,增删改查java客户端,head等博客

你可能感兴趣的:(服务)