栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch学习笔记(二)

Elasticsearch学习笔记(二)

高级查询 查看所有文档

查看匹配的文档

、向ES服务器发送GET请求:localhost:9200/shopping/_search

{
    "query":{
        "match":{
            "title":"西游记"
        }
    }
}

查看全部的文档

{
    "query":{
        "match_all":{
            
        }
    }
}
分页查询
{
    "query":{
        "match_all":{
        }
    },
    "from":0,
    "size":1
}

如果不想匹配source中的所有字段可以在请求体中添加条件

{
    "query":{
        "match_all":{
        }
    },
    "_source":["title"]
}

可以在添加"_source"后在中括号中添加想要显示的字段。

根据条件进行排序

{
    "query":{
        "match_all":{
        }
    },
    "sort":{
        "price":"desc",根据price字段进行降序排序
    }
}
组合查询
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                    "title":"西游记"
                    }
                },
                {
                    "match":{
                    "price":33.00
                    }
                }
            ]
        }
    }
}

"must"表示且的意思,也就是匹配的数据需要title为西游记,price为33.00

"should"表示或的意思,任一个匹配到就可以。

范围查询

使用range字段查询出在指定范围的数据。

{
    "query":{
        "range":{
            "price":{
                // "gt":23.00,
                "gte":23.00
            }
        }
    }
}
全文检索
{
    "query":{
        "match":{
            "title":"甜西",会对这个词进行差分,分别进行匹配
        }
    }
}
完全匹配
{
    "query":{
        "match_phrase":{
            "title":"西甜"
        }
    }
}

使用match_phrase进行完全匹配

模糊匹配
{
    "query":{
        "match":{
            "title":"西游记"
        }
    },
    "highlight":{
        "fields":{
            "title":{}
        }
    }
}

聚合查询

分组显示

{
    "aggs":{ //聚合查询
        "price_group":{ //名称,随意起名
            "terms":{ //分组
                "field":"price" // 分组字段
            }
        }
    }
}

显示平均值

{
    "aggs":{ //聚合查询
        "price_avg":{ //名称,随意起名
            "avg":{ //平均值
                "field":"price" // 分组字段
            }
        }
    },
    "size":0 //不显示原始数据
}

映射关系
{
    "properties":{
        "name":{
            "type":"text", // 可以使用分词
            "index":true // 可以被索引
        },
        "sex":{
            "type":"keyword",// 关键词,不能分词
            "index":true  // 可以被索引
        },
        "tel":{
            "type":"keyword",
            "index":false // 不能被索引
        }
    }
}

首先创建索引,使用PUT请求,

查看映射使用GET请求

查询

因为name字段设置的映射为text,可以使用分词器,所以查询小时可以查出数据

因为sex字段使用的是keyword,因此查询男不能查出来,需要查询男的

因为tel字段设置的不能被索引,因此查询tel字段无法查出数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号