Elasticsearch映射关系之给索引数据添加映射关系
技术 / 管理员 发布于 3年前 1178
1、我们先创建一个user的索引
PUT 方式请求:
http://127.0.0.1:9200/user
2、创建成功后,我们再给 user 索引建立一个映射关系,成功后会返回 true
PUT 方式请求:
http://127.0.0.1:9200/user/_mapping
{
"properties" : {
"name" : {
"type" : "text",
"index" : true
},
"sex" : {
"type" : "keyword",
"index" : true
},
"mobile" : {
"type" : "keyword",
"index" : false
}
}
}
3、此时可以看到user索引和映射关系已经创建完成了
4、接下来我们就可以给user索引创建文档数据了
PUT 方式请求:
http://127.0.0.1:9200/user/_create/1001
{
"name" : "张三",
"sex" : "男性",
"mobile" : 13888888888
}
5、查询user索引文档数据中有没有name包含“三”这个字的数据
GET 方式请求:
http://127.0.0.1:9200/user/_search
{
"query" : {
"match" : {
"name" : "三"
}
}
}
可以看到,我们把刚刚添加进去的数据查询出来了,
我们只输入了一个“三”字就可以把数据查询出来,type = text 时候说明有分词的功能
6、我们继续查询,这次根据sex性别这个字段进行查询
{
"query" : {
"match" : {
"sex" : "男"
}
}
}
可以看到,我们并没有查询到数据。
当我们换成“男性”时,看到可以查询出来,
所以说 type = keyword 时,说明这是关键字,没有分词查询的功能
7、我们继续查询最后一个字段 mobile 手机号
我们可以看到手机号是跟创建时的数据是一致的
{
"query" : {
"match" : {
"mobile" : 13888888888
}
}
}
但是执行查询时,直接提示
failed to create query: Cannot search on field [mobile] since it is not indexed
创建查询失败:
无法在字段[mobile]上搜索,因为它没有被索引,所有,如果 index = false 时,该字段是不能被查询的
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号