Elastisearch, примените фильтр поверх пользовательского запроса в NEST - PullRequest
0 голосов
/ 18 марта 2019

Пользователь может использовать выделенную конечную точку для передачи запросов. У него есть свобода указывать любой запрос и фильтровать по всем полям. Но прежде чем конечная точка перенаправит запрос поиска на сервер Elasticsearch, я бы хотел применить другой фильтр сверху, чтобы ограничить доступ только к определенному набору результатов. Вы можете думать об этом как о фильтре авторизации: пользователь X может обращаться только к объектам, связанным с его идентификатором пользователя.

Я начал с конечной точки, принимающей военные запросы:

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

Есть ли способ изменить фильтр этого запроса, чтобы ограничить доступ к этому вызову? Или, может быть, есть даже более разумный способ приблизиться к этому.

1 Ответ

1 голос
/ 18 марта 2019

Если вы хотите автоматически применять фильтры к поисковым запросам, вы можете использовать отфильтрованные псевдонимы для этого. Однако помните, что отфильтрованные псевдонимы не являются исчерпывающей функцией авторизации.

...