Elasticsearch Search APIs2

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

missing参数

missing参数用于指定,文档缺乏指定字段时的处理方式,missing参数值可以设置为_last(默认值,即位于最下方)_first(位于最上方)、或者其它自定义值,该参数值将用于排序。

 

修改上述例中,文档3如下

PUT /product/myfruit/3?pretty

{

  "product": "apple",

  "offer": [

     {}

  ]

}

 

POST /product/myfruit/_search

{

  "query": {

     "match_all": {}

  },

  "sort": [

     {

        "offer.price": {

           "order": "asc",

           "mode": "avg",

           "missing":"_first",

           "nested_path": "offer"

        }

     }

  ]

}

 

返回结果部分截图:

 

 

更多参考:

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

4. source filter

.不返回查询结果中的字段

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "_source":false

}

 

返回结果:

 

 

 

.仅返回查询结果中指定的字段,firstnameaccount_number

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "_source": [

     "firstname",

     "account_number"

  ]

}

返回结果部分截图

 

使用通配符

.仅返回查询结果中以em,或者字母a开头字段

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "_source": [

     "a*",

     "em*"

  ]

}

 

返回结果部分截图

 

 

includesexcludes

.仅返回查询结果中字段名以字符a开头,但不以em开头的字段

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "_source": {

     "includes": [

        "a*"

     ],

     "excludes": [

        "em*"

     ]

  }

}

 

参考链接:

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

 

 

5. script field

返回脚本计算值(基于不同字段)

.

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "script_fields": {

     "test1": {

        "script": {

           "inline": "doc['account_number'].value * 2"

        }

     },

     "test2": {

        "script": {

           "inline": "doc['account_number'].value * params.factor",

           "params": {

              "factor": 3

           }

        }

     }

  }

}

 

注意:这里,account_number为文档中已存在的字段名

 

返回结果

 

 

.

POST /customer/external/_search?

{

  "script_fields": {

     "test1": {

        "script": {

           "inline": "params.factor * params.factor",

           "params": {

              "factor": 3

           }

        }

     }

  }

}

 

返回结果

 

.访问_source,返回firstname的值

POST /customer/external/_search?

{

  "query": {

     "match_all": {}

  },

  "script_fields": {

     "test1": {

        "script": "params['_source']['firstname']"

     }

  }

}

 

返回结果部分截图

 

注意:使用doc['my_field_name'].value比使用arams['_source']['my_field_name']更快更效率,推荐使用

相关实践学习
使用阿里云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 异步检索,在数据量比较大时: 传统检索可能导致超时,以至于无数据返回;或者需要等待很久,用户体验差。 异步检索,可以快速响应数据,用户无需等待。
1002 0
Elasticsearch 异步搜索 Async search 实战
|
测试技术 索引
Elasticsearch search after分页检索案例
Elasticsearch search after分页检索案例分享 The best elasticsearch highlevel java rest api-----bboss 1.准备工作 参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端 2.
5459 0
|
算法
白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
97 0
Elasticsearch Search APIs3
Elasticsearch Search APIs3
62 0
|
关系型数据库 MySQL 测试技术
Elasticsearch Search APIs1
Elasticsearch Search APIs
88 0
Elasticsearch搜索模板search tempalte
Elasticsearch搜索模板search tempalte
|
存储 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