栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Elasticsearch进阶使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Elasticsearch进阶使用

查询
  1. 地址查询
查询customer下external 
_search表示查询
q=*表示所有  
sort=account_number:asc 按照account_number列升序排列
GET customer/external/_search?q=*&sort=account_number:asc
  1. 请求体查询 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 
作者声明
如有问题,欢迎指正!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号