- 地址查询
查询customer下external _search表示查询 q=*表示所有 sort=account_number:asc 按照account_number列升序排列 GET customer/external/_search?q=*&sort=account_number:asc
- 请求体查询 DSL
GET customer/_search
{
"query":{
"match_all":{}, 查询所有
"match":{
"字段名":"匹配值" 查询某个字段包含模糊匹配写法一样 即倒排索引进行分词 如果中间加空格 会查出包含第一个匹配值或者第二个匹配值的记录
"字段名.keyword":"匹配值" 精确查找一模一样
},
"term":{
与match相同 建议非文本用term 文本用match
},
"match_phrase":{
"字段名":"匹配值" 不分词 多个匹配值也是整体包含
},
"multi_match":{多字段匹配 分词
"query":"查询条件(匹配值)",
"fields":[字段名(多个)]
},
"bool":{ 符合查询 即组合查询
"must":[
必须满足 可以写多个上面的匹配
{
"match":{
"字段名":"匹配值"
}
},
{
"match":{
"字段名":"匹配值"
}
},
{
"range":{
"字段名":{
"gte":值,
"lte":值
} 范围 例如年零 在18-20之间
}
},
],
"must_not":[必须不满足 写法同上],
"should":[满足不满足都行 写法同上],
"filter":[与上区别在于不计算相关性得分 满足 写法同上]
},
"aggs":{ 聚合
"聚合名字":{
"聚合类型" terms表示分组 avg表示平均值:{
"field":"字段名",
"size": 可写可不写 平均值时不写
}
可以进行嵌套聚合 比如分组后求每组平均值
}
}
},
"sort":[
{
"account_number":"asc"
}
],
"from":0,默认是返回10条数据 from表示从哪开始,size表示要多少条数据
"size":5
"_source":["字段名1","字段名2"] 表示返回数据只要哪些字段
}
mapping 映射
查询customer的所有映射 类型
GET /customer/_mapping
创建映射规则
PUT /customer_index
{
"mapping":{
"propeties":{
"字段名":{"type":"类型"}, 参考官网
}
}
}
添加映射
PUT /customer_index/_mapping
{
"propeties":{
"字段名":{"type":"类型","index":false}, 参考官网
}
}
不能直接修改映射,想要修改需要数据迁移
1.创建新的映射
PUT /customer_index
{
"mapping":{
"propeties":{
"字段名":{"type":"类型"}, 参考官网
}
}
}
2.迁移
PUT _reindex 固定写法{
"source":{ 源
"index":
"type":
}
"dest":{ 目标
"index"
}
}
分词
利用分词器实现 内置有 默认的是英文
POST _analyze
{
"analyzer":"standard" 标准分词 以空格分隔
"text":"内容"
}
安装ik分词器
# 进入elasticsearch 容器
docker exec -it aa520d08c573 /bin/bash
# 进入配置
cd plugins/
# [https://github.com/medcl/elasticsearch-analysis-ik/releases?page=6](https://github.com/medcl/elasticsearch-analysis-ik/releases?page=6)
#下载zip文件 用scp上传到虚拟机 解压
#也可以在外部挂载的 /mydata/elasticsearch/plugins/文件夹进行操作
unzip elasticsearch-analysis-ik-7.4.2.zip
使用
POST _analyze
{
"analyzer":"ik_smart" 智能分词 以空格分隔 ik_max_word 最大单词
"text":"内容"
}
自定义分词器词库
nginx安装参考 http://t.csdn.cn/mXkmn
#在nginx的挂载目录下的html创建es文件 mkdir /mydata/nginx/html/es #进入es文件夹 cd es #编辑分词 vi fenci.txt #访问 http://服务器ip/es/fenci.txt #进入ik分词器的挂载目录 cd /mydata/elasticsearch/plugins/ik/config #编辑配置文件 把刚刚的访问地址放到远程扩展字典的地方 vi IKAnalyzer.cfg.xml #重启测试 docker restart elasticsearch作者声明
如有问题,欢迎指正!



