Elasticsearch映射关系之给索引数据添加映射关系
技术  /  管理员 发布于 2年前   898
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 时,该字段是不能被查询的
原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..博主 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号