gpt4 book ai didi

c# - 使用 NEST 无法将文档自动映射到 elasticsearch

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:18 25 4
gpt4 key购买 nike

我在 C# 中有一个简单的 Dummy 文档。我第一次尝试使用 NEST 客户端将它索引到 elasticsearch 中。但是自动映射不起作用。

我的虚拟文档是:

class DummyRecord {
public string RecordName;
public int RecordId;
}

主要程序是:

class Program
{
static void Main(string[] args)
{
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node).DefaultTypeName("_doc");
var client = new ElasticClient(settings);

var doc = new DummyRecord {
RecordName = "SOmething",
RecordId = 1
};

var creaeIndexRespone = client.CreateIndex("DummyIndex",c => c.Mappings(ms=> ms.Map<DummyRecord>(m => m.AutoMap())));
Console.WriteLine(creaeIndexRespone);

var response = client.Index(doc, idx => idx.Index("DummyIndex"));
Console.WriteLine(response);
Console.ReadKey();
}
}

我得到的只是以下输出:

Invalid NEST response built from a unsuccessful low level call on PUT: /DummyIndex

Invalid NEST response built from a unsuccessful low level call on POST: /DummyIndex/_doc

如何让这个东西工作。在创 build 置时,我还需要做些什么吗??

var settings = new ConnectionSettings(node).DefaultTypeName("_doc");

最佳答案

两件事

  1. 索引名称需要小写,即 "DummyIndex" -> "dummyindex"
  2. DummyRecord 成员需要是属性而不是字段

您可以检查对任何 API 调用的响应是否有效,并在需要时采取措施

var client = new ElasticClient();

var createIndexResponse = client.CreateIndex(defaultIndex, c => c
.Mappings(m => m
.Map<DummyRecord>(mm => mm
.AutoMap()
)
)
);

if (!createIndexResponse.IsValid) {
Console.WriteLine(createIndexResponse.DebugInformation);
}

关于c# - 使用 NEST 无法将文档自动映射到 elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55914743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com