Eleasticreach学习-02
作者:互联网
新增
//这里的stu是_type;4是id
PUT /demo4/stu/4
{
"name":"王五",
"age":26
}
//注意这里的_create不是_type,是创建文档的一个表示或者
//可以说是命令关键字
POST /demo4/_create/1
{
"name":"王二",
"age":20
}
简单查询
#根据id查询数据
GET / 索引 / _type / id //这里不介意使用_type字段,后面会删除
> GET /demo2/_search?q=name:张 //q(query)
注意:keyword 类型的字段ik分词器是不会拆分词的
复杂查询
#下面俩句话一个意思
GET /demo2/_search?q=name:张 //q(query)
GET /demo4/_search //demo4是索引(就是库的名称)
{
"query": { //query就是上面的那个q
"match": { //匹配条件
"name": "张三" //要匹配的字段
}
}
}
GET /demo4/_search
{
"query": {
"match": {
"name": "张三"
}
},
"_source": ["name"] //添加返回结果过滤,就是想让查询结果包含那些字段
}
使用java操作es,里面的方法、对象就是这里的key
GET /demo4/_search
{
"query":{
"match": {
"name": "张"
}
},
"sort": [ //排序
{
"age": {
"order": "asc"
}
}
]
}
使用排序之后,_score、max_score是null
GET /demo4/_search
{
"query":{
"match": {
"name": "张"
}
},
"sort": [
{
"age": {
"order": "asc"
}
}
],
//分页查询,from表示从哪开始,size表示每页显示几条数据
"from": 0,
"size": 2
}
bool查询
GET /demo4/_search
{
"query":{
"bool": {
"must": [
{
"match": {
"name": "张三"
}
},{
"match": {
"age": 24
}
}
]
}
}
}
must : 条件都要满足 (and)
should:条件满足其一就好 (or)
must_not:must的反向过滤
filter过滤
GET /demo4/_search
{
"query":{
"bool": {
"must": [
{
"match": {
"name": "张三"
}
}
],
//添加过滤条件
"filter": [
{"range": {
"age": {
"gte": 20, //大于等于
"lte": 26 //小于等于
}
}}
]
}
}
}
gt 大于
lt 小于
匹配多个条件,模糊查询
GET /demo4/_search
{
"query":{
"match": {
##这里的狂神和三是两个匹配条件, 可以使用" 空格"将其隔开
"name": "狂神 三"
}
}
}
精确查询 term
term直接通过倒排索引指定的词条进行精确的查找。
关于分词:
- term 直接精确查询
- match 分词器解析查询(先分析文档,然后通过分析的文档进行查询)
但是注意 keyword 两种类型是不会被分词器拆分
多值匹配,精确查询
##bool查询的should和term查询结合
GET /demo4/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"age": {
"value": 24
}
}
},{
"term": {
"age": {
"value": 26
}
}
}
]
}
}
}
高亮查询
GET /demo4/_search
{
"query":{
"match": {
"name": "狂神 三"
}
},
//高亮查询设置
"highlight": {
//pre_tags、post_tags 这两个是我们自定义
高亮样式(css语法)
"pre_tags": "<p class='key' style='color:red'>",
"post_tags": "</p>",
//设置我们要高亮的字段
"fields": {
"name": {}
}
}
}
删除
//DELETE--关键字 demo4--索引名 stu--_type名
DELETE /demo4/stu/{id}
修改
POST /demo3/_update/1 //参考这种写法,上面那种加_type的给提示说,_type会被删除。
{
"doc":{
"name":"张三法外狂徒"
}
}
标签:02,search,name,GET,Eleasticreach,查询,学习,demo4,query 来源: https://blog.csdn.net/weixin_36347219/article/details/116401497