Elasticsearch 两个索引关联搜索

这篇具有很好参考价值的文章主要介绍了Elasticsearch 两个索引关联搜索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用查询一个索引的值,并利用那个值去查询另外一个索引

1.Terms lookup query

要执行术语查找,请使用以下参数
index
(必需,字符串)从中获取字段值的索引的名称。
​
id
(必需,字符串)要从中获取字段值的文档的ID。
​
path
(必需,字符串)要从中获取字段值的字段名称。 Elasticsearch 使用这些值作为查询的搜索词。 如果字段值包含嵌套的内部对象的数组,则可以使用点表示法语法访问这些对象。
​
routing
(可选,字符串)从中获取术语值的文档的自定义路由值。 如果在为文档建立索引时提供了自定义路由值,则此参数是必需的。

1.1 创建 user_test 和 user_info_test索引

1.1.1 创建 user_test

POST user_test/_bulk
{ "create": {"_id":5}}
{ "username": "111","userId":"5"}
{ "create": {"_id":6}}
{ "username": "222" ,"userId":"6"}
{ "create": {"_id":7}}
{ "username": "333","userId":"7"}
{ "create": {"_id":8}}
{ "username": "4444","userId":"8"}
GET user_test/_search
{
 "hits" : {
    "total" : {
      "value" : 4,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "user_test",
        "_type" : "_doc",
        "_id" : "5",
        "_score" : 1.0,
        "_source" : {
          "username" : "111",
          "userId" : "5"
        }
      },
      {
        "_index" : "user_test",
        "_type" : "_doc",
        "_id" : "6",
        "_score" : 1.0,
        "_source" : {
          "username" : "222",
          "userId" : "6"
        }
      }
} 

1.1.2 创建 user_info_test

POST user_info_test/_bulk
{ "create": {"_id":1}}
{ "name": "111","age":"15"}
{ "create": {"_id":2}}
{ "name": "222" ,"age":"16"}
{ "create": {"_id":3}}
{ "name": "333","age":"17"}
{ "create": {"_id":4}}
{ "name": "4444","age":"18"}
GET user_info_test/_search
{
 "hits" : [
      {
        "_index" : "user_info_test",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "name" : "111",
          "age" : "15"
        }
      },
      {
        "_index" : "user_info_test",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "name" : "222",
          "age" : "16"
        }
      }
}

1.2 根据 user_test 关联搜索出user_info_test的数据

根据指定的id查询出user_test的username,在根据username查询出user_info_test关联的内容

GET user_info_test/_search
{
  "query": {
    "terms": {
      "name": {
        "index":"user_test",
        "id":"5",
        "path": "username"
      }
    }
  }
}

此处的id为文档中的_id,暂时也只能是 _id,path 为返回字段

Elasticsearch 两个索引关联搜索

 文章来源地址https://www.toymoban.com/news/detail-408955.html

到了这里,关于Elasticsearch 两个索引关联搜索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis全文搜索教程之创建索引并关联源数据

    Redis 全文搜索是依赖于 Redis 官方提供的 RediSearch 来实现的。RediSearch 提供了一种简单快速的方法对 hash 或者 json 类型数据的任何字段建立二级索引,然后就可以对被索引的 hash 或者 json 类型数据字段进行搜索和聚合操作。 这里我们把被索引的 hash 或者 json 类型数据叫做源数据

    2024年02月04日
    浏览(28)
  • 关于两个不同数据库的两张表建立数据库链接,关联查询数据

    数据库链接(database link)是用于跨不同数据库之间进行连接和数据传输的工具或方法。它允许在一个数据库中访问另一个数据库中的对象和数据。 --1.建立链接tjpt 上述示例中的  pt_user 、 pt_password  和  10.70.231.130/orcl 需要替换为实际的用户、密码和数据库信息。 创建链接后

    2024年02月10日
    浏览(36)
  • Elasticsearch之join关联查询

    目录 一、join总述 1、关系类比 2、使用限制 3、性能问题 二、Mapping 1、举例说明  2、mapping释义 三、插入数据 1、插入父文档 2、插入子文档 四、关联查询 1、has_parent查询(父查子) 3、has_child查询(子查父) 目录 一、join总述 1、关系类比 2、使用限制 3、性能问题 二、Mapp

    2024年02月03日
    浏览(32)
  • RestHighLevelClient实现ElasticSearch关联查询之父子文档

    RestHighLevelClient实现ElasticSearch关联查询之父子文档今天分享,承接上一篇内容: DSL操作关联查询 这篇我们通过javaAPI的方式实现: 一、springboot 配置 1、pom文件引用: 2、初始化配置es操作类 3、业务层引用 二、核心伪代码 1、创建父子索引 kibana查看 2、判断索引是否存在 3、删

    2024年02月10日
    浏览(30)
  • Elasticsearch 之 join 关联查询及使用场景

    在Elasticsearch这样的分布式系统中执行类似SQL的join连接是代价是比较大的,然而,Elasticsearch却给我们提供了基于水平扩展的两种连接形式 。这句话摘自Elasticsearch官网,从“然而”来看,说明某些场景某些情况下我们还是可以使用的 在关系型数据库中,以MySQL为例,尤其B端类

    2024年02月06日
    浏览(34)
  • Elasticsearch中父子文档的关联:利用Join类型赋予文档的层级关系

    码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! Elasticsearch是一个强大的搜索引擎,它提供了丰富的功能来满足复杂的搜索需求。其中,父子索引类型的join功能是一个强大的工具,它允许我们在同一索引中创建具有层级关系的文档

    2024年04月15日
    浏览(35)
  • Elasticsearch:搜索及索引分析器

    在我之前的文章 “Elasticsearch: analyzer”,我详细介绍了在 Elasticsearch 中的分析器。分析器在 Elasticsearh 中,它在索引文档的时候需要使用,同时,它也在搜索时,也需要针对搜索的文字进行分词。在今天的文章中,我们来详细介绍分析器是如何在索引及搜索时使用的。 可以在

    2024年02月05日
    浏览(72)
  • elasticsearch 跨索引联合多条件查询

    Elasticsearch 是一个免费且开放的分布式搜索和分析引擎。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组

    2023年04月09日
    浏览(34)
  • ElasticSearch学习简单使用(索引、文档、分页查询、多条件查询)

    APIfox接口在线文档 安装连接 下载链接(各个系统,也包括docker) 打开 我下载的时window版本,直接就是zip压缩包解压后直接使用 执行bin目录下的这个bat文件,就会自动打开终端运行了。 大部分使用http请求进行学习。 你需要一个接口工具,postman,APIfox,或者一些浏览器插件

    2024年02月03日
    浏览(35)
  • Elasticsearch Mapping字段未支持索引导致搜索失效

    生产上Es根据一个时间字段搜索,却没有返回数据 根据命令: GET indexName/_mapping 查看 count_name设置了 “index”: false 导致根据该字段搜索导致索引不生效。 ES的mappings 定义好了生成索引后是不支持修改现有的字段的,只能新增属性。 使用 reindex 命令处理 1、运行命令: GET ind

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包