ElasticSearch笔记2--Query DSL

ElasticSearch笔记2--Query DSL,第1张

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"
            }
         }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5695836.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存