【问题标题】:unique records in elastic search弹性搜索中的唯一记录
【发布时间】:2020-06-04 09:00:48
【问题描述】:

如何根据其中的属性在弹性搜索中查找所有唯一记录.. 有什么办法吗?

GET  questiondetails/question/_search
{
    "size": 0,
    "aggs" : {
        "Name" : {
            "terms" : {
                "field" : "owner.user_id.keyword"
            }
        }
    }
}

我尝试过这种方式。但我希望它在整个记录中存在用户 ID 的任何地方提供所有文档。 是否也在内部循环中......

有没有办法在单个查询中而不是在多个查询中获取它.. 这是我的示例记录。

{
    "_index": "questiondetails",
    "_type": "question",
    "_id": "BOktPnABW1evGoA0CqDZ",
    "_score": 1,
    "_source": {
      "tags": [
        "android",
        "kotlin"
      ],
      "owner": {

        "user_id": "10633771"
      },

      "reply_count": "1",

      "reply": [
        {
          "owner": {

            "user_id": "12632101",
            "user_type": "registered",

          }

        }
      ]
    }
  }

索引

{
  "questiondetails": {
    "aliases": {},
    "mappings": {
      "question": {
        "properties": {
          "accepted_answer_id": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "answer_count": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "answers": {
            "properties": {
              "answer_id": {
                "type": "long"
              },
              "body": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "body_markdown": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "comment_count": {
                "type": "long"
              },
              "comments": {
                "properties": {
                  "comment_id": {
                    "type": "long"
                  },
                  "creation_date": {
                    "type": "long"
                  },
                  "edited": {
                    "type": "boolean"
                  },
                  "owner": {
                    "properties": {
                      "accept_rate": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "display_name": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "link": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "profile_image": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "reputation": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "user_id": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "user_type": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      }
                    }
                  },
                  "post_id": {
                    "type": "long"
                  },
                  "reply_to_user": {
                    "properties": {
                      "display_name": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "link": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "profile_image": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "reputation": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "user_id": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      },
                      "user_type": {
                        "type": "text",
                        "fields": {
                          "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                          }
                        }
                      }
                    }
                  },
                  "score": {
                    "type": "long"
                  }
                }
              },
              "creation_date": {
                "type": "long"
              },
              "down_vote_count": {
                "type": "long"
              },
              "is_accepted": {
                "type": "boolean"
              },
              "last_activity_date": {
                "type": "long"
              },
              "last_edit_date": {
                "type": "long"
              },
              "link": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "owner": {
                "properties": {
                  "accept_rate": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "display_name": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "link": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "profile_image": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "reputation": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_id": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_type": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  }
                }
              },
              "question_id": {
                "type": "long"
              },
              "score": {
                "type": "long"
              },
              "share_link": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "title": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "up_vote_count": {
                "type": "long"
              }
            }
          },
          "body": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "body_markdown": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "close_vote_count": {
            "type": "long"
          },
          "comment_count": {
            "type": "long"
          },
          "comments": {
            "properties": {
              "body": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "body_markdown": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "comment_id": {
                "type": "long"
              },
              "creation_date": {
                "type": "long"
              },
              "edited": {
                "type": "boolean"
              },
              "owner": {
                "properties": {
                  "accept_rate": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "display_name": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "link": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "profile_image": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "reputation": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_id": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_type": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  }
                }
              },
              "post_id": {
                "type": "long"
              },
              "reply_to_user": {
                "properties": {
                  "accept_rate": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "display_name": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "link": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "profile_image": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "reputation": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_id": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  },
                  "user_type": {
                    "type": "text",
                    "fields": {
                      "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                      }
                    }
                  }
                }
              },
              "score": {
                "type": "long"
              }
            }
          },
          "creation_date": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "delete_vote_count": {
            "type": "long"
          },
          "down_vote_count": {
            "type": "long"
          },
          "is_answered": {
            "type": "boolean"
          },
          "last_activity_date": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "last_edit_date": {
            "type": "long"
          },
          "last_editor": {
            "properties": {
              "accept_rate": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "display_name": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "link": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "profile_image": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "reputation": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "user_id": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "user_type": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          },
          "link": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "owner": {
            "properties": {
              "accept_rate": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "display_name": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "link": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "profile_image": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "reputation": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "user_id": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "user_type": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          },
          "question_id": {
            "type": "long"
          },
          "reopen_vote_count": {
            "type": "long"
          },
          "score": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "share_link": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "tags": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "title": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "up_vote_count": {
            "type": "long"
          },
          "view_count": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    },
    "settings": {
      "index": {
        "creation_date": "1581585452123",
        "number_of_shards": "5",
        "number_of_replicas": "1",
        "uuid": "_nvo_G7ZRvqMIwLmddUXPw",
        "version": {
          "created": "6020399"
        },
        "provided_name": "questiondetails"
      }
    }
  }
}

【问题讨论】:

  • 能否分享一下使用GET questiondetails的索引映射?
  • GET questiondetails/question/_search
  • 不,GET questiondetails 我想看看你的索引映射
  • 你是说你想看我的数据??我可以运行 getquestiondetails 并给你数据吗?h
  • 不是数据,只是索引映射,只需在 KIbana 开发工具中运行 GET questiondetails 并使用您获得的结果更新您的问题。

标签: elasticsearch


【解决方案1】:

您可以通过scripted terms aggregation 实现您想要的,如下所示:

POST questions/_search
{
  "size": 0,
  "aggs": {
    "ids": {
      "terms": {
        "script": "[doc['owner.user_id.keyword'].value, doc['reply.owner.user_id.keyword'].value]",
        "size": 10
      }
    }
  }
}

【讨论】:

  • 这个运气好吗?
猜你喜欢
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 2018-12-06
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
相关资源
最近更新 更多