Elastic Search NEST客户原始+自定义查询

问题描述 投票:0回答:1

我正在使用NEST客户端查询ES,但是现在我遇到了一种特殊情况-我正在尝试将查询代理到ES,但是默认情况下应用了特定查询:

public IEnumerable<TDocument> Search<TDocument>(string indexName, string query, string sort, int page, int pageSize) where TDocument : class
{
    var search = new SearchRequest(indexName)
    {
        From = page,
        Size = pageSize,
        Query = new RawQuery(query),
    };


    var response = this.client.Search<TDocument>(search);

    return response.Documents;
}

上面的代码只是将查询代理到ES,但是如果我需要应用应始终与传递的查询一起应用的特定过滤器,该怎么办?

例如,我希望Active字段默认为true。如何将这个原始查询与某些特定且始终应用的过滤器合并(如果可能,不合并字符串以制定合并的ES API调用)。

elasticsearch nest
1个回答
0
投票

假设query是与查询DSL相对应的格式正确的JSON,则可以将其反序列化为QueryContainer的实例,并将其与其他查询组合。例如

© www.soinside.com 2019 - 2024. All rights reserved.