Нет результатов поиска при передаче более одного параметра в метаданных пользователя - PullRequest
1 голос
/ 29 апреля 2019

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

Я создаю роль и пользователя в эластичных и передавая значения внутри пользователяметаданные роли, на основе которой должен осуществляться поиск.Это работает нормально, если я приведу одно значение.

Для создания роли:

PUT _xpack/security/role/my_policy

{ 
    "indices": [{
        "names": ["my_index"],
        "privileges": ["read"],
        "query": {
            "template": {
                "source": "{\"bool\": {\"filter\": [{\"terms_set\": {\"country_name\": {\"terms\": {{#toJson}}_user.metadata.country_name{{/toJson}},\"minimum_should_match_script\":{\"source\":\"params.num_terms\"}}}}]}}"
            }
        }
    }]
}

И для пользователя:

PUT _xpack/security/user/jack_black

{
    "username": "jack_black",
    "password":"testtest",
    "roles": ["my_policy"],
    "full_name": "Jack Black"
    "email": "jb@tenaciousd.com",
    "metadata": {
        "country_name": ["india" , "japan"]
    }
}

Я ожидаю, что выходные данные будут результатами для Индиии только япония.Если пользователь ищет что-то еще, он не должен получить никаких результатов.

Однако я не вижу никаких результатов:

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 0,
        "max_score": null,
        "hits": []
    }
}
...