美文网首页
【ES从入门到实战】九、全文检索-ElasticSearch-进

【ES从入门到实战】九、全文检索-ElasticSearch-进

作者: runewbie | 来源:发表于2020-05-24 16:27 被阅读0次

    接第8节

    四、进阶检索

    1、SearchAPl

    ES 支持两种基本方式检索:

    • 一个是通过使用 REST request URI 发送搜索参数(uri+检索参数)
    • 另一个是通过使用 REST requestbody 来发送它们(uri+请求体)

    1)、检索信息

    一切检索从_search开始
    uri+检索参数:

    请求或返回 解释
    GET bank/_search 检索 bank 下所有信息,包括 type 和 docs
    GET bank/_search?q=*&sort=account_number:asc 请求参数方式检索
    响应结果解释:
    took Elasticsearch执行搜索的时间(臺秒)
    time_out 告诉我们搜索是否超时
    _shards 告诉我们多少个分片被搜索了,以及统计了成功/失败的搜索分片
    hits 搜索结果
    hits.total 搜索结果
    hits.hits 实际的搜索结果数组(默认为前10的文档)
    sort 结果的排序 key (键) (没有则按 score 排序)
    score 和 max_score 相关性得分和最高得分(全文检索用)

    查询结果:


    在这里插入图片描述

    uri+请求体 进行检索:

    uri+请求体 进行检索
    GET /bank/_search
    {
    "query": {
    "match_all": {}
    },
    "sort": [
    {
    "account_number": "asc"
    },
    {
    "balance": "desc"
    }
    ]
    }
    HTTP 客户端工具(POSTMAN),get 请求不能携带请求体,我们变为 post 也是一样的我们 POST 一个 JSON 风格的查询请求体到_search APl。
    需要了解,一旦搜索的结果被返回, Elasticsearch 就完成了这次请求,并且不会维护任何服务端的资源或者结果的 cursor (游标)

    查询结果:


    在这里插入图片描述

    参考文档getting-started-search

    2、Query DSL

    在上一节中使用的形如

    GET /bank/_search
    {
      "query": {
        "match_all": {}
      },
      "sort": [
        {
          "account_number": "asc"
        },
        {
          "balance": "desc"
        }
      ]
    }
    

    的查询语言风格,我们称之为 Query DSL

    1)、基本语法格式

    Elastisearch 提供了一个可以执行查询的 Json 风格的 DSl (domain-specific language 领域特定语言) 。这个被称为Query DSL。
    该查询语言非常全面,并且刚开始的时候感觉有点复杂,真正学好它的方法是从一些基础的示例开始的。

    • 一个查询语句的典型结构

    参考:

    Elasticsearch Reference

    elastic

    全文搜索引擎 Elasticsearch 入门教程

    相关文章

      网友评论

          本文标题:【ES从入门到实战】九、全文检索-ElasticSearch-进

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