elasticsearch Elasticsearch-带或不带“搜索”;博士;?
我在Nest C#Elasticsearch上遇到了一些关于“doc.”关键字的奇怪问题。 我使用的是Couchbase,我有一个类,其中一个字段是一个对象数组 我尝试在这个数组中搜索特定的值。 大概是这样的:
elasticsearch Elasticsearch-带或不带“搜索”;博士;?,
elasticsearch,couchbase,nest,
elasticsearch,Couchbase,Nest,我在Nest C#Elasticsearch上遇到了一些关于“doc.”关键字的奇怪问题。 我使用的是Couchbase,我有一个类,其中一个字段是一个对象数组 我尝试在这个数组中搜索特定的值。 大概是这样的: string mailFilesKey = string.Empty; ISearchResponse<object> result = _mainManager.Client.Search<object>(c => c
string mailFilesKey = string.Empty;
ISearchResponse<object> result = _mainManager.Client.Search<object>(c => c
.Type("MailFiles")
.Query(q =>
q.Term("SentFile_Id", fileId))
.Size(1));
为什么?哈哈,好的,不错的。我很久以前就有了这个东西,当时我开始使用Nest和elastic。如果有对象,则可以使用lambda表达式 比如
f=>f.SentFile\u Id
。
现在,当您使用字符串获取嵌套中字段的名称时,您必须知道所有字段、索引名和弹性体中的类型都是以小写首字母存储的。所以你应该使用这个:q.Term(“sentFile\u Id”,fileId))
应该很好用 这完全取决于映射。如果名为
doc
的“对象”或“嵌套”类型未包含SentFile\u Id
,则它将无法使用doc.
作为前缀。大概是因为它起作用了,所以您没有将它包含在文档中。患者说,“医生,当我这样做时它会痛。”医生回答,“那就不要这样做!”使用并检查查询嵌套触发的内容,以弹性搜索并比较它们。
q.Term("doc.SentFile_Id", fileId))