DSL搜索

作者: 蓝色Hippie | 来源:发表于2020-09-23 06:39 被阅读0次

    一、QueryString查询方式

    查询[字段]包含[内容]的文档:

    索引为shop的desc属性值为慕课网:GET   url/shop/_doc/_search?q=desc:慕课网

                                                               GET   url/shop/_doc/_search?q=nickname:慕&q=age:25

    这种查询方式称为QueryString查询方式,参数都是放在url中作为请求参数的

    二、DSL搜索

    QueryString用的很少,一旦参数复杂就难以构建,所以大多查询使用DSL来进行。

    DSL:Domain Specific Language ,特定领域语言,基于JSON格式的数据查询,查询更灵活

    1.# 查询

    POST    /shop/_doc/_search

    {

        "query": {

            "match": {

                "desc": "慕课网"

            }

        }

    }

    # 判断某个字段是否存在

    {

        "query": {

            "exists": {

            "field": "desc"

        }

        }

    }

    语法格式为一个json object,内容都是key-value键值对,json可以嵌套

    key可以是一些es关键字,也可以是某个field字段

    2.在索引中查询所有文档

    GET  url/shop/_doc/_search

    或者

    POST  url/shop/_doc/_search

    {

        "query": {

            "match_all": {}

        },

        "_source": ["id", "nickname", "age"]

    }

    3.分页查询

    默认查询是10条,可分页展示

    4.term/match区别

    match会对要搜索的词汇进行分词后检索,而term直接把要搜索的此作为一个整的词去搜索。

    terms

    5.match_phrash短语匹配

    可匹配的语句:武汉大学的学生毕业了,有的希望继续考上研究生。

    6.match扩展

    operator关键字 mimimum_should_match关键字 根据主键id搜索 多字段搜索

    相关文章

      网友评论

          本文标题:DSL搜索

          本文链接:https://www.haomeiwen.com/subject/jlzrektx.html