KI分词器
下载:
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.1
在Kibana里测试分词器
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我爱我的祖国"
}
配置IK分词器词典
要复制路径下原有的dic去改名,因为有编码与BOM头问题
配置文件路径:
elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml
在ext_dict节点中配置my.dic为自己新创建的配置字典
增删改查数据
- 新增:动作/库名/类型/索引
wj是不会拆分的,所以w模糊查询不会被查到,有标点或者中文才会被拆分
PUT /test1/type1/1
{
"name": "wj",
"age": 36
}
- 查询数据:
GET test1
- 查看数据量:
GET _cat/indices?v
- 更新可以用PUT或者POST,以及删除等操作网上自行搜索
POST test1/type1/1/_update
{
"doc": {
"name": "只更新name,PUT会覆盖没赋值的字段"
}
}
- 搜索:
确定name字段有wj完全匹配的值
这里是模糊查询,但是只有标点分隔或者中文才能模糊
GET test1/type1/_search?q=name:wj
- 多条件搜索:
懒得敲代码了
- must = 逻辑与and
- must_not = 不等于
- should = 逻辑或or
- range = 范围 gt、gte大于 lt小于 lte
- term = 精确查询
查询数据完整例子
只创建表与列类型
keyword是结果是否分词(完全匹配查询)
PUT testdb
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"desc": {
"type": "keyword"
}
}
}
}
- 写入数据
PUT testdb/_doc/2
{
"name":"张三",
"desc":"没吃呢吗"
}
- 查询数据
GET testdb/_doc/_search
{
"query": {
"match": {
"name": "张"
}
}
}
批量导入json数据
注意事项:
-
index后面的默认索引表名称可以去掉,换句话说一次可以给多个索引表添加数据
-
index与数据必须换行否则报错,见图
-
json最后一行必须是空行
-
查找替换进行换行,在excel里制作后使用notepad++查出替换的话需要使用
{“sys_name”:
换成
\r\n{“sys_name”:
{"index":{"_id":6}}
{"sys_name":"辽宁省ODS备案信息管理系统","department":"海城市远阔贸易有限公司","username":"海城市远阔贸易有限公司","logtime":"2020-11-16T15:41:20"}
{"index":{"_id":9}}
{"sys_name":"辽宁省ODS备案信息管理系统","department":"辽宁派博聚氨酯销售有限公司","username":"辽宁派博聚氨酯销售有限公司","logtime":"2020-11-04T16:39:27"}
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare_6.0.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/lnlog/_bulk?pretty' --data-binary @lnlog.json
拼接excel为json参考
="{""index"":{""_id"":"""&A2&"""}}{""sys_name"":"""&B2&""",""department"":"""&D2&""",""username"":"""&E2&""",""logtime"":"""&TEXT(G2,"yyyy-mm-ddThh:mm:ss")&"""}"
查看每个索引(表)数据量
GET _cat/indices?v
查看表结构
GET 表名 _mapping
GET /lnlog/_mapping