带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(6)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(6)


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.3.全文搜索/精确搜索(5) https://developer.aliyun.com/article/1229939


range 的 relation 计算

 

可以主要参考下面的实践:

 

1、创建一个 range 类型的字段 agerange


POST my-index-000001/_mappings
{
  "properties": {
    "agerange": {
      "type": "integer_range"
    }
  }
}

2、创建两个文档


PUT my-index-000001/_doc/11?refresh
{
  "agerange": {
    "lte": 21,
"gte": 10
  }
}
PUT my-index-000001/_doc/12
{
  "agerange": {
    "lte": 30,
    "gte": 20
  }
}

3、首先使用默认的 INTERSECTS 查询 10 到 21 范围的文档,应该两个文档都返回。


POST my-index-000001/_search
{
  "query": {
    "range": {
      "agerange": {
        "gte": 10,
        "lte": 21
      }
    }
  }
}
# 返回内容
{
  ......
  "hits" : {
    "total" : {
      "value" : 2,
      "relation" : "eq"
    },
    "max_score" : 1.0,
"hits" : [
      {
        "_index" : "my-index-000001",
        "_type" : "_doc",
        "_id" : "12",
        "_score" : 1.0,
        "_source" : {
          "agerange" : {
            "lte" : 30,
            "gte" : 20
          }
        }
      },
      {
        "_index" : "my-index-000001",
        "_type" : "_doc",
        "_id" : "11",
        "_score" : 1.0,
        "_source" : {
          "agerange" : {
            "lte" : 21,
            "gte" : 10
          }
        }
      }
    ]
  }
}

4、再使用 CONTAINS 查询范围为 10 到 21 的文档,应该只返回文档 11


POST my-index-000001/_search
{
  "query": {
"range": {
      "agerange": {
        "gte": 10,
        "lte": 21,
        "relation": "CONTAINS"
      }
    }
  }
}
# 返回内容
{
  ......
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "my-index-000001",
        "_type" : "_doc",
        "_id" : "11",
        "_score" : 1.0,
        "_source" : {
          "agerange" : {
            "lte" : 21,
            "gte" : 10
          }
        }
      }
    ]
  }
}

5、再使用 CONTAINS 查询范围为 20 到 21 的文档,应该两个文档都返回


POST my-index-000001/_search
{
  "query": {
    "range": {
      "agerange": {
        "gte": 20,
        "lte": 21,
        "relation": "CONTAINS"
      }
    }
  }
}
# 返回内容
{
  ......
  "hits" : {
    "total" : {
      "value" : 2,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "my-index-000001",
        "_type" : "_doc",
        "_id" : "11",
        "_score" : 1.0,
        "_source" : {
          "agerange" : {
            "lte" : 21,
            "gte" : 10
          }
        }
      },
      {
        "_index" : "my-index-000001",
        "_type" : "_doc",
        "_id" : "12",
        "_score" : 1.0,
        "_source" : {
          "agerange" : {
            "lte" : 30,
            "gte" : 20
          }
        }
      }
    ]
  }
}



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.3.全文搜索/精确搜索(7) https://developer.aliyun.com/article/1229936

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
传感器 开发工具 IDE
【Arduino基础教程】MQ135空气质量检测模块
MQ135空气质量检测模块 MQ135主要用于检测空气中的二氧化碳、酒精、苯、氮氧化物、氨等气体的浓度。 本文将介绍MQ135的两种使用方法 不使用库文件 使用别人写好的库文件 1.
3908 0
|
5月前
|
搜索推荐 应用服务中间件 PHP
301重定向完整指南: 原理、应用与实现方法
301重定向是一种永久性URL转发技术,用于将旧链接的权重传递给新URL,有助于SEO优化、提升用户体验和维护网站流量。本文介绍了301重定向的应用场景(如更换域名、HTTP转HTTPS等)、实现方法(Apache、Nginx、PHP等)及最佳实践,并解答了常见问题,帮助用户正确配置以确保网站无缝过渡。建议在操作前备份配置并使用工具验证效果。
527 10
|
12月前
|
JSON 安全 API
淘宝 API 接口:解锁商品详情的强大工具
淘宝API接口在电商领域扮演着关键角色,为商家和开发者提供强大的数据支持和服务能力。它不仅帮助商家获取商品信息、管理订单和物流,还支持数据分析、价格调整等功能,助力商家在竞争激烈的市场中取得成功。此外,通过注册认证、搭建开发环境等步骤,开发者可快速上手并利用丰富的技术文档和社区支持进行高效开发。
|
Java 应用服务中间件 Apache
Apache Maven项目的搭建与部署
Apache Maven项目的搭建与部署
538 0
|
存储 算法 C++
【C/C++ 数据结构】哈希表冲突解决策略深度解析:原理、数学与C/C++实践
【C/C++ 数据结构】哈希表冲突解决策略深度解析:原理、数学与C/C++实践
305 0
|
存储 监控 安全
重构项目的十大注意事项
重构项目的十大注意事项
|
SQL 运维 监控
Dataphin V3.9 版本升级|支持一站式数据汇聚处理、优化研发体验、提升数据治理能力
Dataphin V3.9 版本升级|支持一站式数据汇聚处理、优化研发体验、提升数据治理能力
316 0
|
监控 数据可视化 安全
Baumer工业相机堡盟相机如何使用Trace功能(相机日志追踪的使用和优点以及行业应用)(C++)
Baumer工业相机堡盟相机如何使用Trace功能(相机日志追踪的使用和优点以及行业应用)(C++)
220 0