使用 NEST 检查索引中是否存在文档
Checking if a document exists in index using NEST
我正在重新编制索引,但每当我尝试删除不存在的文档时遇到问题,因此我需要检查该文档是否已存在。
中刚刚解释了该方法
我发现 有一些有趣的代码,我已经尝试过了
var docExists = client.DocumentExists<object>(d => d
.Index(indexname)
.Id(myId)
.Type("Abcdef"));
但是编译器报错
Cannot convert lambda expression to type 'Nest.DocumentPath<object>' because it's not a delegate type
我想我的错误是因为问题是指 NEST 1.x 而我正在使用 NEST 2.x.
我知道我可以做一个简单的查询,但我想知道是否有像ES这样的直接方式doc-exists。
谢谢
DocumentExists
的签名在 NEST 2.x 中发生了一点变化。
现在看起来像:
public IExistsResponse DocumentExists<T>(DocumentPath<T> document, Func<DocumentExistsDescriptor<T>, IDocumentExistsRequest> selector = null) where T : class
你的例子可以表达如下
client.DocumentExists<Document>(myId, d => d
.Index(indexname)
.Type("Abcdef"));
如果您对DocumentPath<T>
感到好奇,请阅读this NEST文档的和平。
我最终使用了
client.DocumentExists(new DocumentExistsRequest(indexName, type.Name, myId))
因为我无法使用通用方法DocumentExists<T>(..)
我正在重新编制索引,但每当我尝试删除不存在的文档时遇到问题,因此我需要检查该文档是否已存在。
中刚刚解释了该方法我发现
var docExists = client.DocumentExists<object>(d => d
.Index(indexname)
.Id(myId)
.Type("Abcdef"));
但是编译器报错
Cannot convert lambda expression to type 'Nest.DocumentPath<object>' because it's not a delegate type
我想我的错误是因为问题是指 NEST 1.x 而我正在使用 NEST 2.x.
我知道我可以做一个简单的查询,但我想知道是否有像ES这样的直接方式doc-exists。
谢谢
DocumentExists
的签名在 NEST 2.x 中发生了一点变化。
现在看起来像:
public IExistsResponse DocumentExists<T>(DocumentPath<T> document, Func<DocumentExistsDescriptor<T>, IDocumentExistsRequest> selector = null) where T : class
你的例子可以表达如下
client.DocumentExists<Document>(myId, d => d
.Index(indexname)
.Type("Abcdef"));
如果您对DocumentPath<T>
感到好奇,请阅读this NEST文档的和平。
我最终使用了
client.DocumentExists(new DocumentExistsRequest(indexName, type.Name, myId))
因为我无法使用通用方法DocumentExists<T>(..)