ElasticSearch笔记2--Query DSL

GET /索引名/_doc/_search {json格式请求体数据}

查询所有

# query DSL 语法:查询所有 match_all 

GET /products/_doc/_search
{
    "query":{
        "match_all":{}
    }
}

# 不写_doc也可以
# 即GET /products/_search

基于关键词查询

# term 基于关键词查询
# keyword 类型 日后搜索使用 全部内容搜索 不分词
# integer double 类型 不分词
# 除了text类型分词,其余类型均不分词 
# text 类型 默认 标准分词器 中文单字分词 英文单词分词
{
    "query":{
        "description":{
            "value":"真"
        }
    }
}

范围查询

# 范围查询 range
# gt 大于 lt小于 gte是大于大于 lte是小于等于
{
    "query":{
        "range":{
            "price":{
                "gt":0,
                "lte":5
            }
        }
    }
}

前缀查询

# prefix 通过关键词的前缀进行查询
GET /products/_search
{
    "query":{
        "prefix":{
            "title":{
                "value":"商品"
            }
        }
    }
}

 通配符查询

# wildcard 通配符查询 ?用来匹配一个任意字符 *用来匹配多个任意字符
GET /products/_search
{
    "query":{
        "wildcard":{
            "title":{
                "value":"商*"
            }
        }
    }
}

多id查询

# ids关键字:值为数值类型,用来根据一组_id获取多个对应的文档
GET /products/_search
{
    "query":{
        ids:{
            "values":[1,2,4]
        }
    }
}

模糊查询  

# fuzzy 模糊查询 模糊范围[0,2]
# 搜索关键词长度为2及一下,不允许出现模糊
# 搜索关键词长度为3-5,允许出现一次模糊
# 搜索关键词长度大于5,允许出现二次模糊
{
    "query":{
        "fuzzy":{
            "title":"商拼1"
        }
    }
}

布尔查询

# bool 关键字:用来组合多个条件实现复杂程序
  must:相当于&&同时成立
  should:相当于||成立一个就行
  must_not:相当于!不能满足任何一个
GET /products/_search
{
    "query":{
        "bool":{
            "must":[
                {
                    "ids":{
                        "values":[1]
                    }
                },{
                    "term":{
                        "title":{
                            "value":"商品"
                        }
                    }
                }
            ]
        }
    }
}

多字段查询

# 多字段查询 multi_match
# 注意:query 输入关键词 或 输入一段文本
# 若要查询的字段分词,将查询条件分词之后进行查询 如果该字段不分词就会将查询条件作为整体进行查询
GET /products/_search
{
    "query":{
        "multi_match":{
            "query":"商品",
            "fields":["title","description"]
        }
    }
}

默认字段查询

# query_string 
# 将query全部分词,然后查询
GET /products/_search
{
    "query":{
        "query_string":{
            "default_field":"title",
            "query":"商品类型得到的"
        }
    }
}

返回结果处理

# size 指定返回查询结果中的返回条数,默认返回10条
# from 用来指定起始返回位置,和 size关键字连用可实现分页效果
# sort 用来对查询结果进行排序,asc升序
# source 返回指定字段
GET /products/_search
{
    "query":{
        "query_string":{
            "default_field":"title",
            "query":"商品类型得到的"
        }
    },
    "sort":[
        "price":{
            "order":"asc"
        }
     ],
    "size":3,
    "from":0,
    "_source":["id","title","description"]
}

分词器

# 插入的时候便插入分词器
# ik_max_word 细粒度
# ik_smart 粗粒度
PUT /test
{
    "mapping":{
        "properties":{
            "title":{
                "type":"text",
                "analyzer":"ik_max_word"
            }
         }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值