Elasticsearch Search APIs3

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticsearch Search APIs3

 

参考链接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html

 

 

6. doc field

.

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

   "docvalue_fields" : ["account_number", "test2"]

}

 

返回结果部分截图

 

 

7. post filter

filteraggregation完成后才被执行。

 

PUT /shirts

{

   "mappings": {

       "item": {

           "properties": {

               "brand": { "type": "keyword"},

               "color": { "type": "keyword"},

               "model": { "type": "keyword"}

           }

       }

   }

}

 

PUT /shirts/item/1?refresh

{

   "brand": "gucci",

   "color": "red",

   "model": "slim"

}

 

.仅返回搜索结果中包含colorredbrandgucci的文档记录

POST /shirts/_search

{

  "query": {

     "bool": {

        "filter": [

           {

              "term": {

                 "color": "red"

              }

           },

           {

              "term": {

                 "brand": "gucci"

              }

           }

        ]

     }

  }

}

 

.仅返回搜索结果中包含colorredbrandguccishirt,按model分组,按分组统计数降序排序

POST /shirts/_search

{

  "query": {

     "bool": {

        "filter": [

           {

              "term": {

                 "color": "red"

              }

           },

           {

              "term": {

                 "brand": "gucci"

              }

           }

        ]

     }

  },

  "aggs": {

     "models": {

        "terms": {

           "field": "model"

        }

     }

  }

}

 

返回结果部分截图

 

 

.

.仅搜索brand值为guccishirt,按color分组,降序展示每种colorshirt数量,同时,针对colorredshirt商品,按model分组统计,降序展示每种model的数量

 

POST /shirts/_search

{

  "query": {

     "bool": {

        "filter": {

           "term": {

              "brand": "gucci"

           }

        }

     }

  },

  "aggs": {

     "group_by_colors": {

        "terms": {

           "field": "color"

        }

     },

     "color_red": {

        "filter": {

           "term": {

              "color": "red"

           }

        },

        "aggs": {

           "group_by_models": {

              "terms": {

                 "field": "model"

              }

           }

        }

     }

  },

  "post_filter": {

     "term": {

        "color": "red"

     }

  }

}

 

说明:   "post_filter",作用于最后,不展示color不为redshirt记录

 

返回结果部分截图

 

8. search_after

.如下,每页只显示5条记录,按leve_vale降序排序,如果leve_vale相同则按_uid降序排序

POST /fenxi/fenxishuj/_search?

{

  "query": {

     "match_all": {}

  },

  "sort": [

     {

        "leve_vale":"desc",

        "_uid": "desc"

     }

  ],

  "size":5

}

 

返回结果部分截图

 

 

这时,在不改变页size值的情况下,我们想查看下一页的记录,咋办?

 

方案:把sort中的参数值,按出现顺序,依次传递给search_after

POST /fenxi/fenxishuj/_search?

{

  "query": {

     "match_all": {}

  },

  "search_after":[31,"fenxishuj#9"],

  "sort": [

     {"leve_vale":"desc",

        "_uid": "desc"

     }

  ],

  "size":5

}

 

注意:

1sort中的参数值要和search_after一一对应(数量&顺序的对应)

2、使用了search_after的情况下,如果要使用from参数,参数值只能为0-1

 

参考资料:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-after.html

 


 

更多资料参考:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html

 

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
存储 SQL JSON
Elasticsearch Search API之搜索模板(search Template)
Elasticsearch Search API之搜索模板(search Template)
Elasticsearch Search API之搜索模板(search Template)
|
监控 API UED
Elasticsearch 异步搜索 Async search 实战
1、Elasticsearch 异步搜索定义 异步搜索 API 可异步执行搜索请求、监控其进度并检索可用的部分结果。 如下的官方介绍动画,能更加生动的介绍清楚异步检索。 传统检索 VS 异步检索,在数据量比较大时: 传统检索可能导致超时,以至于无数据返回;或者需要等待很久,用户体验差。 异步检索,可以快速响应数据,用户无需等待。
1008 0
Elasticsearch 异步搜索 Async search 实战
|
测试技术 索引
Elasticsearch search after分页检索案例
Elasticsearch search after分页检索案例分享 The best elasticsearch highlevel java rest api-----bboss 1.准备工作 参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端 2.
5465 0
Elasticsearch Search APIs2
Elasticsearch Search APIs
77 0
   Elasticsearch Search APIs2
|
算法
白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
97 0
|
关系型数据库 MySQL 测试技术
Elasticsearch Search APIs1
Elasticsearch Search APIs
90 0
|
存储 Java API
Elasticsearch Search API之(Request Body Search 查询主体)-下篇
Elasticsearch Search API之(Request Body Search 查询主体)-下篇
Elasticsearch Search API之(Request Body Search 查询主体)-下篇
|
存储 自然语言处理 算法
Elasticsearch Search API之(Request Body Search 查询主体)-上篇
Elasticsearch Search API之(Request Body Search 查询主体)-上篇
Elasticsearch Search API之(Request Body Search 查询主体)-上篇
|
缓存 算法 关系型数据库
Elasticsearch Search API 概述与URI Search
Elasticsearch Search API 概述与URI Search
Elasticsearch Search API 概述与URI Search
Elasticsearch搜索模板search tempalte
Elasticsearch搜索模板search tempalte