前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >es语法 rest api 模拟根据歌手,歌名,歌词来搜索demo

es语法 rest api 模拟根据歌手,歌名,歌词来搜索demo

作者头像
oktokeep
发布2024-10-09 08:49:14
640
发布2024-10-09 08:49:14
举报
文章被收录于专栏:第三方工具

#创建索引 songs_v1 PUT { - "acknowledged": true, "shards_acknowledged": true, "index": "songs_v1" }

#创建映射 高版本的没有type,可以使用默认的_doc,避免不同的type之间存在相同的字段名,但是字段类型不同的问题。 { - "error": "no handler found for uri [/songs_v1/mapping/popular] and method [PUT]" }

_doc { - "error": { - "root_cause": [ - { - "type": "illegal_argument_exception", "reason": "Types cannot be provided in put mapping requests" } ], "type": "illegal_argument_exception", "reason": "Types cannot be provided in put mapping requests" }, "status": 400 }

songs_v1/_mapping/ PUT songs_v2/_mappings PUT 也成功 { "properties":{ "songName":{"type":"text"}, "singer":{"type":"text"}, "lyrics":{"type":"text"} } } 返回 { - "acknowledged": true }

浏览器上面访问 http://IP:9200/songs_v1/_settings?pretty http://IP:9200/songs_v1/_mappings?pretty

红色框的{}需要去掉。

索引数据 songs_v2/_doc POST { "songName":"tianyi", "singer":"liudehua", "lyrics":"shui zai hu wo de xin li you duo ku" } 返回 { - "_index": "songs_v2", "_id": "40nNMYEBLnSF9_D_lR0_", "_version": 1, "result": "created", "_shards": { - "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }

查询,根据歌手查询 songs_v2/_search?q=singer:liudehua GET 根据歌词查询 songs_v2/_search?q=lyrics:duo GET 根据歌名来查询 songs_v2/_search?q=songName:wangqingshui

文本匹配不到问题 因ES分词处理导致匹配不到 不需要做模糊查询的字段,使用keyword代替text,避免创建索引的时候对这些词进行分词。

查询全部 songs_v2/_search { "query": { "match_all": { "boost": 1 } } } 根据歌名查询 songs_v2/_search { "from": 0, "size": 5, "timeout": "60s", "query": { "term": { "songName": { "value": "tianyi", "boost": 1 } } } }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档