elasticsearch 如何使用嵌套搜索到默认索引?,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 如何使用嵌套搜索到默认索引?,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 如何使用嵌套搜索到默认索引?

elasticsearch 如何使用嵌套搜索到默认索引?,elasticsearch,nest,elasticsearch,Nest,这是我的默认索引: new ConnectionSettings(node).DefaultIndex("profiles") 我当前有此查询,需要使用NEST执行搜索: GET profiles/_search 我的问题是,NEST需要一个对象作为搜索方法 ElasticSearch.Search< object>() 如何对配置文件索引本身执行搜索?ElasticSearch.search不搜索对象。当您调用搜索方法时,它使用您的配置文件索引 您将在搜索后得到一个结果。它需

这是我的默认索引:

new ConnectionSettings(node).DefaultIndex("profiles")
我当前有此查询,需要使用NEST执行搜索:

GET profiles/_search
我的问题是,NEST需要一个对象作为搜索方法

ElasticSearch.Search< object>()
如何对配置文件索引本身执行搜索?

ElasticSearch.search不搜索对象。当您调用搜索方法时,它使用您的配置文件索引

您将在搜索后得到一个结果。它需要对象。 为具有如下属性的概要文件创建模型类

public class Profile
{
    public string Name{get;set;}
}
并使用

ElasticSearch.Search<Profile>()
它将在结果中为您提供一个概要文件列表。

嵌套中的T方法(如搜索)用于两个目的:

通过lambda表达式为T的属性提供强类型访问 在API返回JSON文档的情况下,例如搜索返回每个命中的_source字段下的原始索引文档,T将是该文档反序列化的类型。 如果您不需要或不希望这些行为中的任何一种,您可以将object或dynamic用于t,并为诸如Field之类的值指定字符串。然后,您需要了解如何阅读POCO;在dynamic的情况下,返回的类型是一个类似内部JObject的类型,因此您可以动态访问它的属性

为了在URI中没有类型的情况下执行搜索,可以使用

var searchResponse = client.Search<object>(s => s
    .AllTypes()
    .Query(q => q
        .Match(m => m
            .Field("some_field")
            .Query("match query")
        )
    )
);

很有魅力。所有类型都是我缺少的。谢谢
POST http://localhost:9200/profiles/_search 
{
  "query": {
    "match": {
      "some_field": {
        "query": "match query"
      }
    }
  }
}