Эластично, как определить отображение, учитывая другое значение поля - PullRequest
0 голосов
/ 04 июля 2019

Вот что я имею в качестве данных:

 {
          "firstname" : "blablabla",
              ...
          "otherDatas" : [
            {
              "reference" : "40xxx1372",
              "universe" : "marketing",
              "dataType" : "id"
            },
            {
              "reference" : "roleA",
              "universe" : "finance",
              "dataType" : "role"
            }
          ],
        }

Что мне нужно сделать, так это создать отображение для особого случая otherDatas, например, иметь ключевое слово otherDatas.role.reference: только в том случае, если у моего otherDatas есть тип данных "role"

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

Есть ли способ достичь этого?

1 Ответ

2 голосов
/ 04 июля 2019

Не менее важно понять, какой тип values входит в key, прежде чем создавать свое отображение.Пожалуйста, обратите внимание на различия между типами text и keyword.Я предполагаю, что все эти поля имеют значение keyword, что означает одно слово и не требует какого-либо анализа этих значений.

Принимая во внимание ваше отображение, я считаю, что nested объект, вероятно, смутил вас.Вот как вы это делаете (и дайте мне знать, если у вас есть какие-либо конкретные вопросы)

PUT so_test14
{
  "mappings": {
    "_doc":{
      "properties":{
        "firstname": {"type":"keyword"},

        "otherDatas": {
          "type": "nested",
          "properties": {
            "reference": {"type": "keyword"},
            "universe": {"type": "keyword"},
            "dataType": {"type": "keyword"}
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...