Есть ли способ объединить атрибуты между одним и тем же объектом в Elasti c seach? - PullRequest
1 голос
/ 21 января 2020

У меня есть индекс, который даст мне профиль JSON на основе идентификатора. В JSON у меня есть два разных ключа с объектом One key в качестве объекта primary_address с address_id и другим ключом в качестве объекта Address с. адресная карточка. Я хочу добавить объединение address_id обоих объектов для фильтрации данных.

пробовал с

QueryBuilders.boolQuery().must(QueryBuilders.matchAllQuery())
                            .filter(QueryBuilders.existsQuery(fieldName))
                            .filter(QueryBuilders.scriptQuery(new Script("doc['primary_address.id'].value == doc['addresses.addr_id'].value")))
                            .filter(setQuery);

, но это не приводит к получению каких-либо результатов. Любые указатели будут высоко оценены.

1 Ответ

1 голос
/ 21 января 2020

Этот запрос работает. Вы можете попробовать один запрос фильтра bool.

GET your_index/_search
{
  "query": {
    "bool": {
      "filter": {
        "script": {
          "script": {
              "source": "doc['f1'].value == doc['f2'].value",
              "lang": "painless"
            },
            "boost": 1
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...