gpt4 book ai didi

elasticsearch - Elasticsearch问题,我是否应该沿2个不同的索引重复数据?不确定如何设置数据

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

编辑:3个不同的倾向。对不起标题:c

我试图尽快掌握Elasticsearch,但我认为我在这里主要感到困惑。我应该如何设置这些数据?

我有3个主要搜索:

 1: Search by pokemon name. Eg: Show all Charizard in the system.

2: Search by trainer name Eg: Show all of John Doe's pokemon/checkins at the pokecenter.

3: Search by checkins at the pokecenter.

它们中的每一个都应该在各自独立的索引中吗?我绝对是来自SQL背景,所以我想为所有这些使用单独的表。但这不是Elasticsearch的工作原理,所以我在这里真的很困惑。

每个口袋妖怪我都应该有一个单独的索引吗?

然后每个培训者还有一个单独的索引吗?

然后在pokecenter的每个签到又有一个单独的索引?

查询返回示例

1:按口袋妖怪的名字搜索。
{
1 : {
id: 9239329,
pokeId: 6,
name: Charizard,
trainerId: 2932
}
}

2:按培训师姓名搜索
{
1 : {
id: 2932,
name: John Doe,
pokemon: [
9239329
]
}
}

3:在中心通过签到进行搜索。
{
1 : {
id: 3232,
date: 11/11/1111,
pokemon: [
9239329
],
trainerId: 2932
}
}

但是,如果我有一个单独的索引....以及每个索引的索引...虽然那会很快,那不是疯狂的可怕的数据复制吗?

最佳答案

这取决于项目的范围:

  • 理想的方法是将每个索引设置为单独的索引,这使您可以根据需要对它们进行不同的缩放,然后将它们移动到另一个集群,还允许每个索引具有不同的副本设置
  • 快捷的方法是,将 checkin 作为索引,将Trainer作为嵌套对象,然后在其中将pokemon作为嵌套对象。
    注意:嵌套查询的速度较慢,编写查询以精确返回所需内容的查询有些麻烦。
  • 关于elasticsearch - Elasticsearch问题,我是否应该沿2个不同的索引重复数据?不确定如何设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59035525/

    24 4 0
    文章推荐: python - 如何使用 Azure Functions Blob 触发器和 Python 从 Blob 存储中读取 json 文件
    文章推荐: Javascript 根据新日期仅获取偶数小时周期
    文章推荐: Javascript angularjs