elasticsearch 按id从ElasticSearch索引中删除文档
我有一份文件在弹性搜索中。 我正在尝试实现一种方法,在该方法中,我可以指定一个字符串id,以便使用NEST client从索引中删除文档 这是我要删除的索引文档:elasticsearch 按id从ElasticSearch索引中删除文档,elasticsearch,nest,elasticsearch,Nest,我有一份文件在弹性搜索中。 我正在尝试实现一种方法,在该方法中,我可以指定一个字符串id,以便使用NEST client从索引中删除文档 这是我要删除的索引文档: "hits":[{"_index":"movies","_type":"list","_id":"100","_score":0.6349302, "_source" : { "owner": "Bob", "tags": "Bobita", "title": "Movie clips of Bob" }} 这是我的C代
"hits":[{"_index":"movies","_type":"list","_id":"100","_score":0.6349302, "_source" : {
"owner": "Bob",
"tags": "Bobita",
"title": "Movie clips of Bob"
}}
这是我的C代码,它不会删除文档。它说id是空的
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");
}
我遗漏了什么?我认为这里的问题是,由于您没有指定类型,NEST无法正确推断文档的Id属性 如果可能,请尝试以下方法:
client.Delete(“100”);
使用Elasticsearch 7.0上的NEST 7.x,以下代码有效:
var x = _client.Delete<dynamic>(1);
var x=\u client.Delete(1);
(其中1是“_id”值)
如果尚未定义映射,请使用“动态”。否则我建议使用实际的类型。我对NEST一无所知,但似乎您缺少类型(列表)。。。ES的键是index/type/id。在哪里以及如何指定类型和id?我正在寻找这种语法和示例。下面是我的回答如果你看这里,你会看到DeleteById(),这是我的Nest客户端中没有的。我有Delete、DeleteIndex、DeleteByQuery()等,它们确实对我有用,所以如果你有这个问题,至少值得一试。在NEST 5.x中不适用于我。它保持文档的原样。如何获取id?