分词器的主要作用将用户输入的一段文本,按照一定逻辑,分析成多个词语的一种工具
分词器下载地址
analysis-ik
Releases · infinilabs/analysis-ik · GitHub
一个简便 安装方式 安装完成之后 会提示重启,重启es即可
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.12.2/elasticsearch-analysis-ik-8.12.2.zip
安装完成测试
curl -X GET -H "Content-Type: application/json" "http://localhost:9200/_analyze?pretty=true" -d'{"text":"我就是全村人的希望","analyzer": "ik_smart"}'
8.12 版本会执行错误因为启用了https,使用postman 在授权中配置账户密码
返回如下结果证明安装成功
什么时候分词
-
创建索引
:当索引文档字符类型为text
时,在建立索引时将会对该字段进行分词。 -
搜索
:当对一个text
类型的字段进行全文检索时,会对用户输入的文本进行分词。
分词 添加时机:
-
添加完所以之后,创建mapping的时候
ik_smart | ik分词器中的简单分词器,支持自定义字典,远程字典 | 学如逆水行舟,不进则退 | [学如逆水行舟,不进则退] |
---|---|---|---|
ik_max_word | ik_分词器的全量分词器,支持自定义字典,远程字典 | 学如逆水行舟,不进则退 | [学如逆水行舟,学如逆水,逆水行舟,逆水,行舟,不进则退,不进,则,退] |
从数据库导入数据到es:
1.安装logstach,es
2.导入mysql drver 到 /usr/share/logstash/logstash-core/lib/jars/
/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.16.jar
3. 编写配导入配置文件
需要添加配置cacert.证书指定为 /etc/elasticsearch/certs/http_ca.crt ,如果没有证书需要使用证书生成工具生成下,在此之间试了很多次
input {
jdbc {
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.16.jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/es_test"
jdbc_user => "root"
jdbc_password => "root"
statement => "SELECT * FROM mytable"
}
}
output {
elasticsearch {
hosts => ["https://localhost:9200"]
index => "myindex"
document_id => "%{id}"
user => "elastic"
password => "BzevJY1OL-kEBnw*ZJBu"
cacert => '/etc/elasticsearch/certs/http_ca.crt'
}
}
4. 执行导入命令
/usr/share/logstash/bin/logstash -f /usr/share/logstash/conf/mysql.conf
如下:看到successfully
回到kibana 后台看到 变为47 则说明导入成功。有时候看到successfully 并不代表成功,需要看具体的导入数据才行