gpt4 book ai didi

elasticsearch - Elasticsearch /kibana 从相同索引的 2 个文档中获取数据?

转载 作者:行者123 更新时间:2023-12-02 23:12:01 25 4
gpt4 key购买 nike

我在 Elasticsearch 中有 1 个索引 数据生产用于存储文档。该索引在每个文档中都有一个公共(public)字段,名为:文档类型 过滤不同类型的数据。

我在索引中有两种类型的文档:数据生产

一种。 document_type = " 用户 "

湾。文档类型 = " 用户详细信息 "

示例数据

  • 用户
  •         {
    "user_id" : "123",
    "is_trial_active" : "true",
    "updated_at" : "1577338950969",
    "event_created_at" : "1577338950969",
    "document_type" : "user"
    }
  • 用户详情
  •     {         
    "user_id" : "123",
    "name" : "Shivam",
    "gender" : "male",
    "event_created_at" : 1575519449473,
    "phone_number" : "+91-8383838383",
    "document_type" : "user_detail",
    "created_at" : 1576049770184
    }

    备注
  • user_id 是 中的公共(public)键文档类型
  • 使用elasticsearch 7.3.1 版本

  • 问题

    如何从 获取用户详细信息文档类型 ="user_details"其 is_trial_active 中不正确文档类型 =“用户”?

    最佳答案

    一个工作示例:

    映射

    PUT my_index
    {
    "mappings": {
    "properties": {
    "document_type": {
    "type": "join",
    "relations": {
    "user": "user_detail"
    }
    }
    }
    }
    }

    发布少量文件
    PUT my_index/_doc/1
    {
    "user_id": "123",
    "is_trial_active": "false", ---> note i changed this to false for the example
    "updated_at": "1577338950969",
    "event_created_at": "1577338950969",
    "document_type": "user"
    }

    PUT my_index/_doc/2?routing=1
    {
    "user_id": "123",
    "name": "Shivam",
    "gender": "male",
    "event_created_at": 1575519449473,
    "phone_number": "+91-8383838383",
    "created_at": 1576049770184,
    "document_type": {
    "name": "user_detail",
    "parent": "1" --> you can insert array of parents
    }
    }

    搜索查询
    GET my_index/_search
    {
    "query": {
    "has_parent": {
    "parent_type": "user",
    "query": {
    "bool": {
    "must_not": [
    {
    "term": {
    "is_trial_active": {
    "value": "true"
    }
    }
    }
    ]
    }
    }
    }
    }
    }

    结果
    "hits" : [
    {
    "_index" : "my_index",
    "_type" : "_doc",
    "_id" : "2",
    "_score" : 1.0,
    "_routing" : "1",
    "_source" : {
    "user_id" : "123",
    "name" : "Shivam",
    "gender" : "male",
    "event_created_at" : 1575519449473,
    "phone_number" : "+91-8383838383",
    "created_at" : 1576049770184,
    "document_type" : {
    "name" : "user_detail",
    "parent" : "1"
    }
    }
    }
    ]

    希望这可以帮助

    关于elasticsearch - Elasticsearch /kibana 从相同索引的 2 个文档中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59485653/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com