一、概念
1、初学可以把es看作数据库 可以建立索引(库) 文档(库中的数据)
2、es是面向文档的,一切都是json
3、物理设计
es后台把每个索引划分成多个分片,每份分片可以在集群中的不同服务器间迁移,一个默认就是一个集群 默认集群名称elaticsearch
4、逻辑设计
二、ik分词器
1、概述
把一段中文分成一个个关键字,搜索的时候根据关键信息搜索,会把数据库中或者索引中的数据进行分词,默认中文分词是将每一字都看成一个词,比如我爱中国 分成‘我’ ‘爱’ ‘中’‘国’显然有问题,所以安装中文分词器解决这个问题
ik提供了ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word最细粒度划分
2、安装
地址
Releases · medcl/elasticsearch-analysis-ik · GitHub
注意版本和es一致
下载完成解压到es的plugis插件文件下的ik(自己创建)文件夹下,并删除压缩包
查看,进入es bin目录执行
D:\es\elasticsearch-7.14.0\bin>elasticsearch-plugin list "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" Future versions of Elasticsearch will require Java 11; your Java version from [D:\Java\jdk1.8.0_131\jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set. ik
3、使用kibana测试
GET _analyze { "analyzer": "ik_smart", "text": "中国共产党" } GET _analyze { "analyzer": "ik_max_word", "text": "中国共产党" } GET _analyze { "analyzer": "ik_max_word", "text": "java一号中国共产党" }
没有‘java一号’,这种需要自己自定义dic分词
ik目录下配置
再次测试完成
总结:项目中的搜索功能 我们只需定义自己的分词dic文件就行