DSL搜索

一、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搜索
多字段搜索
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。