开发者学堂课程【ElasticSearch 入门精讲:插件安装演示Ⅲ】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/631/detail/10014
插件安装演示Ⅲ
注意点
①针对于 es 集群中已经存在的历史索引库,不会进行重新分词,分词插件不起作用。
就比如以下代码查询不出,只是对新的才有用。
@Test
public void testChinesePlugin() {
//没有安装中文分词插件之前,查询:
SearchResponse response = client.prepareSearch( ...indices:“ok”)
.setTypes("news")
.setQuery(QueryBuilders.termQuery(name:"content", value:“中国”))
.get();
for (SearchHit hit : response.getHits()) {
System.out.println(hit.getSourceAsString());
}
}
在进入索引库的时候,指定一下中文插件
“analyzer”: “ik_max_word”,
“search_analyzer”: “ik_max_word”
没有指定的时候是不会使用中文分词插件的,除非将 IK 设置为默认分词器,否则还是使用哪些西方默认的字符。
②新建索引库,以及索引库下的 type 时,要指定相应的中文分词插件,才会起作用。会根据分词插件,对新增的索引信息进行分词,存储到 es 集群中。
③需要将安装好的 ik 中文分词插件拷贝到集群中别的节点上。
④给 es 集群安装插件时,优先安装中文分词插件(建议排在第一位!!)。
如果索引库中存在很多信息的话,没有事先安装中文分词插件,默认使用西方的分词法
⑤windows 下的换行符是 \r\n , Linux os 下的换行符是 \n ;
windows 下的指令拷贝到 linux 命令行下执行,往往会报错,不
能正常执行,
应对方案是:a)先将内容粘贴到 Linux 下的临时文件中;b)然后从linux 临时文件中拷贝。
因为在我们粘贴的一瞬间,它的底层会将 windows 下的换行符自动转换为 linux 下的换行符。