c# - 不能在 Elasticsearch 中使用字符串作为 _id 的值

标签 c# elasticsearch nest

嘿嘿,
我们有一个带有属性 Id 的文档对象(我们知道它会自动映射到 _id 字段),我们可以让它作为一个 int 来工作和一个 System.Guid

然而,当我们将它更改为更适合我们的用例的字符串时,我们在尝试索引时会遇到以下异常:

mapper_parsing_exception 原因:无法解析 [id] CausedBy:类型:illegal_argument_exception 原因:对于输入字符串:“R700”

不太确定在这里尝试什么。我们想要一个字符串 _id 并且根据在线资源我们应该能够,但是我们得到了这个异常。 非常感谢任何帮助!

编辑:我们是从 POCO 上名为 Id 的属性推断出 Id,我应该澄清一下。 示例:

public class MyDocument {
    public string Id { get; set; }
    ...
}

最佳答案

如果您已经使用 int 或 guid 作为 Id 字段创建了索引,则需要先使用具有字符串作为 Id 字段的新 POCO 重新创建索引,然后才能将该类型存储在索引中。

关于c# - 不能在 Elasticsearch 中使用字符串作为 _id 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50237758/

相关文章:

c# - 需要检查两个 View 模型的类型以查看它们是否源自同一基础

python - 如何获得 helpers.bulk 函数(elasticsearch API)的 python 响应?

elasticsearch - Logstash启动,但不会将数据加载到elasticsearch

elasticsearch - Elasticsearch根据搜索查询更新整个 `_source`字段

c# - 如何为弹性条件源描述符创建Nest

c# - 在变量中存储结构类型引用

c# - wpf 中 OnPaintBackground 的替代方案。

c# - 是否可以在 Windows 上将 Mono 脚本引擎与 Cake 一起使用?

c# - 避免出现ElasticSearch错误503服务器不可用:使用WaitForStatus

elasticsearch - 如何获得别名的索引名?