Elastisearch,在NEST中的用户提供的查询之上应用过滤器

时间:2019-03-18 13:12:25

标签: elasticsearch nest

用户可以使用专用端点来传递查询。他可以自由地为所有字段指定任何查询和过滤器。但是在端点将搜索请求重定向到Elasticsearch服务器之前,我想在顶部应用另一个过滤器,以限制对特定结果集的访问。您可以将其视为授权过滤器:用户X只能访问链接到其用户ID的对象。

我从接受战争查询的端点开始:

        var query = "{\"match\":{\"firstname\":\"John\"}}"
        var searchResponse = await _client.SearchAsync<users>(s => s
            .From(0)
            .Size(10)
            .Query(q =>
                q.Raw(query))
        );

是否有一种方法可以修改此查询的过滤器以限制对此呼叫的访问?也许甚至有更聪明的方法来解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果您希望自动将过滤器应用于搜索请求,则可以使用filtered aliases来执行。但是请记住,过滤后的别名不是授权的综合功能。