es实现mysql like的查询
Posted newjueqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es实现mysql like的查询相关的知识,希望对你有一定的参考价值。
es中需要先安装中文分词插件ik
#如果之前有这个索引,需要先删除索引
DELETE /lepeng
#创建一个索引
PUT /lepeng
#指定索引的格式
#ik_max_word 将文本做最细粒度的拆分
#ik_smart 会做最粗粒度的拆分
#属性keyword不使用ik分词
PUT /lepeng/_mapping/
"properties":
"title":
"type":"text",
"fields":
"keyword":
"type":"keyword",
"ignore_above":256
,
"analyzer": "ik_max_word"
#es中插入和更新数据都可用post,为了方便要指定索引的id
POST /lepeng/_doc/1
"title": "我和猪一样他们好AA的"
POST /lepeng/_doc/2
"title": "榭+舟亢凡丶乐他们一样"
#查询某个数据,实现的是mysql like查询的效果
GET lepeng/_search
"query":
"wildcard":
"title.keyword":
"value": "*一样*"
#获取全部数据
GET lepeng/_search
"query":
"match_all":
,
"from":0,
"size":1000
es从7.9版本开始,新增了一种类型wildcard用于模糊搜索,更加方便了,测试如下:
#如果之前有这个索引,需要先删除索引
DELETE /lepeng
#创建一个索引
PUT /lepeng
#指定索引的格式
PUT /lepeng/_mapping/
"properties":
"title":
"type":"wildcard"
#es中插入和更新数据都可用post,为了方便要指定索引的id
POST /lepeng/_doc/1
"title": "我和猪一样他们好AA的"
POST /lepeng/_doc/2
"title": "榭+舟亢凡丶乐他们一样"
#查询某个数据,实现的是mysql like查询的效果
GET lepeng/_search
"query":
"match":
"title": "*+舟亢凡丶乐他们一*"
以上是关于es实现mysql like的查询的主要内容,如果未能解决你的问题,请参考以下文章