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

ElasticSearch笔记2--Query DSL

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

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

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

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