用户可以使用专用端点来传递查询。他可以自由地为所有字段指定任何查询和过滤器。但是在端点将搜索请求重定向到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))
);
是否有一种方法可以修改此查询的过滤器以限制对此呼叫的访问?也许甚至有更聪明的方法来解决这个问题。