我的以下问题是,我有一个项目列表,并希望用elasticsearch索引这些项目。我有一个正在运行的elasticsearch实例,并且此实例有一个名为“默认”的索引。Elasticsearch NEST Indeces and Indexing
于是我运行下面的代码:
var items = GetAListOfItem();
var response = Client.IndexMany(items);
我也Client.IndexManyAsync(items)
试了一下。但那没有做任何事情。
此列表中只有1个项目被索引。而已。我认为它是最后一项,它被编入索引。
我认为这可能是IEnumerable
和多个枚举的东西,但我把它解析为List<Item>
。
另一个问题是关于Elasticsearch的最佳实践。使用每个模型的索引是否很常见?所以如果我从Exchange和另一个系统收集数据,我会做2个indeces?
- ExchangeIndex
- OtherSystemIndex
谢谢您的帮助。
更新:我看到我的Client.Index可以使所有这些调用成功,但所有这些对象都从NEST获得相同的ID。通常她必须自己增加,不是吗?
更新2:我固定的索引问题。我设置了一个空的ID字段。
但是仍然有关于Elasticsearch的问题。
非常感谢您的回答。如前所述,我遇到了设置ID字段但未填写的问题。我现在就把它删除了。 从Exchange和数据库收集数据。所以一个模型是电子邮件,另一个模型基本上是联系人或其他东西。所以从你的例子我会说,即时通讯做2个indeces,对吧? – Marius
这取决于,在你的例子中,只有电子邮件中的索引不要说太多,更好地丰富索引数据并创建包括联系信息或任何相关信息的索引(你必须在索引的目的下思考),所以你不需要查询多个索引来获得某些东西。在这个系统中有更好的重复数据,会更快的处理事情。 –