如何使用带对象初始化程序语法的Nest执行原始查询?

时间:2016-01-29 04:56:35

标签: elasticsearch nest

我正在尝试使用Nest在ElasticSearch中进行搜索。我想使用对象初始化器语法,因为我需要动态构建搜索的各个部分。我已经弄清楚如何构建大部分请求,但我不清楚如何初始化Raw Query。 OIS似乎没有QueryRaw作为请求的参数。

我现在的代码:

var searchResults = client.Search<dynamic>(s => s
    .Index("myIndex"),
    .Type("myType),
    .Aggregations(a => a
        .DateHistogram("my_date_histogram", h => h
            .Field("DateField")
            .Interval("day")
         )
     )
     .QueryRaw(queryText)
)

我正在尝试创建的代码:

var request = new SearchRequest<dynamic>
{
    Index = "MyIndex",
    Type = "MyType",
    QueryRaw = <doesn't exist>
};

2 个答案:

答案 0 :(得分:2)

您可以通过

执行此操作
var searchResponse = client.Search<dynamic>(new SearchRequest
{
    Query = new RawQuery(yourquery)
});

使用NEST 2.0.0.alpha2和ES 2.1.0进行测试

答案 1 :(得分:0)

以下是使用新对象结构进行原始查询的方法:

var response = client.Search<dynamic>(s => s
    .Query(qry => qry
        .Raw(yourRawQueryStringHere)
    )
);