Elasticsearch NEST Indeces and Indexing

时间:2016-05-31 06:32:49

标签: c# asynchronous elasticsearch indexing ienumerable

我的以下问题是,我有一个项目列表,并希望使用elasticsearch索引那些。我有一个正在运行的elasticsearch实例,这个实例有一个名为" default "的索引。

所以我正在运行以下代码:

var items = GetAListOfItem();
var response = Client.IndexMany(items);

我也尝试过Client.IndexManyAsync(items)。但那并没有做任何事情。

此列表中只有1个项目被编入索引。而已。我认为它是最后一个被索引的项目。

我认为这可能是IEnumerable和多个枚举的问题,但我将其解析为List<Item>

另一个问题是关于Elasticsearch的最佳实践。每个模型使用索引是否常见。因此,如果我从例如Exchange和另一个系统收集数据,我会做2个空白吗?

  1. ExchangeIndex
  2. OtherSystemIndex
  3. 感谢您的帮助。

    更新:我看到我的Client.Index会成功完成所有这些调用,但所有这些对象都从NEST获得了相同的ID。通常她不得不自己增加,不是吗?

    更新2:我修复了索引问题。我设置了一个空的ID-Field。

    但仍然有关于Elasticsearch的最佳实践问题。

1 个答案:

答案 0 :(得分:1)

如果要上传所有具有相同ID的数据,它将不会增加id,这将更新具有该ID的记录,并且您将只有一条记录,因此您可以上传没有id的数据或在任何地方提供识别记录的唯一ID。 另一个常见问题是您的记录与您为索引提供的映射不同。

关于另一个问题,在索引中,您存储了与您相关的信息,即使它具有来自许多模型的内容,如果您有关于服务器的索引,则唯一需要避免的是混合信息例如,日志不要与用户活动混合。