【发布时间】:2016-08-17 12:56:30
【问题描述】:
我们正在寻求从关系数据库切换到弹性搜索,我正在尝试使用 Nest 启动和运行一些基本代码。我们有现有的对象,这些对象使用 ids 的 guid,我想将它们保存到弹性搜索索引中。
我不想添加任何特定属性,因为该类用于不同的应用程序,我不想向 Nest 添加不必要的依赖项。
现在我的代码如下所示:
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node)
settings.DefaultIndex = "test";
var client = new ElasticClient(settings);
var testItem = new TestType { Id = Guid.NewGuid(), Name = "Test", Value = "10" };
var response = client.Index(testItem);
TestType 为:
public class TestType
{
public Guid Id { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}
但是我收到如下错误:
ServerError: 400Type: mapper_parsing_exception 原因:“失败 解析 [id]" CausedBy: "类型:number_format_exception 原因:"对于 输入字符串:"c9c0ed42-86cd-4a94-bc86-a6112f4c9188""
我想我需要指定一个映射,告诉服务器 Id 是一个字符串,但我找不到任何示例或文档说明如何在不使用属性的情况下执行此操作。
【问题讨论】:
标签: c# nest elasticsearch-net