我有弹性搜索的文档。 我正在尝试实现一种方法,我可以指定一个字符串id来使用NEST客户端从索引中删除文档。
这是我要删除的索引文档:
"hits":[{"_index":"movies","_type":"list","_id":"100","_score":0.6349302, "_source" : {
"owner": "Bob",
"tags": "Bobita",
"title": "Movie clips of Bob"
}}
这是我的C#代码,它不会删除文档。它说id为NULL。
Uri localhost = new Uri("http://localhost:9200");
var setting = new ConnectionSettings(localhost);
setting.SetDefaultIndex("movies");
var client = new ElasticClient(setting);
IDeleteResponse resp = client.Delete("100");
if (!resp.Found)
{
logger.Error("Failed to delete index with id=100");
}
我缺少什么?
答案 0 :(得分:5)
我认为这里的问题是NEST无法正确推断文档的Id属性,因为您没有指定类型。
如果可能的话,请尝试以下方法:
client.Delete<YourMovieType>("100");
答案 1 :(得分:0)
在Elasticsearch 7.0上使用NEST 7.x,以下代码有效:
var x = _client.Delete<dynamic>(1);
(其中1是' _id '值)
如果尚未定义映射,请使用“ 动态”。否则,我建议使用实际类型。