elasticsearch - ElasticSearch:在NEST中的用户提供的查询上应用过滤器

标签 elasticsearch nest

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

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

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

有没有办法修改此查询的筛选器以限制对此调用的访问?也许甚至有更聪明的方法来解决这个问题。

最佳答案

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

关于elasticsearch - ElasticSearch:在NEST中的用户提供的查询上应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55222221/

相关文章:

ElasticSearch 使用 MongoDB-River 插件返回零命中

elasticsearch - ELK数据插入由于类型映射失败而失败,因为实际数据类型发生了更改。

elasticsearch - 巢-重新编制索引

elasticsearch - 从NEST中的索引名称推断 Elasticsearch 类型

elasticsearch - 用!索引以他们的名义不能被过滤以恢复

java - Apache 弗林克 : Custom InputFormat only runs with parallelism of 1

ruby-on-rails - 在Rails中混合使用PSQL和ElasticSearch ORM

elasticsearch - Nest筛选功能分数

elasticsearch - 如何使用 NEST 在 Logstash 中为 Elasticsearch 构造过滤器?

c# - Json.Net 中的 "Current error context error is different to requested error"异常