我的以下问题是,我有一个项目列表,并希望使用elasticsearch索引那些。我有一个正在运行的elasticsearch实例,这个实例有一个名为" default "的索引。
所以我正在运行以下代码:
var items = GetAListOfItem();
var response = Client.IndexMany(items);
我也尝试过Client.IndexManyAsync(items)
。但那并没有做任何事情。
此列表中只有1个项目被编入索引。而已。我认为它是最后一个被索引的项目。
我认为这可能是IEnumerable
和多个枚举的问题,但我将其解析为List<Item>
。
另一个问题是关于Elasticsearch的最佳实践。每个模型使用索引是否常见。因此,如果我从例如Exchange和另一个系统收集数据,我会做2个空白吗?
感谢您的帮助。
更新:我看到我的Client.Index会成功完成所有这些调用,但所有这些对象都从NEST获得了相同的ID。通常她不得不自己增加,不是吗?
更新2:我修复了索引问题。我设置了一个空的ID-Field。
但仍然有关于Elasticsearch的最佳实践问题。
答案 0 :(得分:1)
如果要上传所有具有相同ID的数据,它将不会增加id,这将更新具有该ID的记录,并且您将只有一条记录,因此您可以上传没有id的数据或在任何地方提供识别记录的唯一ID。 另一个常见问题是您的记录与您为索引提供的映射不同。
关于另一个问题,在索引中,您存储了与您相关的信息,即使它具有来自许多模型的内容,如果您有关于服务器的索引,则唯一需要避免的是混合信息例如,日志不要与用户活动混合。