Elasticsearch 5.3: Индексирование дочернего документа заканчивается на другом осколке, чем родительский - PullRequest
0 голосов
/ 26 февраля 2020

Проблема индексации Elasticsearch 5.3: дети иногда попадают на осколки, отличные от своих родителей после индексации. Это предотвращает использование запросов hasChild и hasParent к индексу.

Индекс (myindex_v001) содержит три типа: задачи, документы, назначения. При создании индекса документы отображаются как дочерние элементы задач, а назначения отображаются как дочерние элементы документов.

{
  "myindex_v001": {
    "mappings": {
      "tasks": {
        "_all": {
          "analyzer": "default",
          "search_analyzer": "default_search"
        },
        ...
}


{
  "myindex_v001": {
    "mappings": {
      "documents": {
        "_all": {
          "analyzer": "default",
          "search_analyzer": "default_search"
        },
        "_parent": {
          "type": "tasks"
        },
        "_routing": {
          "required": true
        },
        ...
}

{
  "myindex_v001": {
    "mappings": {
      "assignments": {
        "_all": {
          "analyzer": "default",
          "search_analyzer": "default_search"
        },
        "_parent": {
          "type": "documents"
        },
        "_routing": {
          "required": true
        },
        ...
 }

Вся индексация выполняется в службе Java. Java делает REST-вызов (PUT) по URL-адресу, указывая индекс, тип и parent_id. Тот же код используется для индексирования задач, документов и назначений.

При индексации документов (http://eshost: порт / myindex / documents / {document_id}? Parent = {task_id }) каждый проиндексированный документ попадает в тот же сегмент, что и его родительская задача, как и ожидалось. Запросы hasChild прекрасно работают для задач / документов.

Однако при индексации назначений (http://eshost: порт / myindex / assignments / {assignment_id}? parent = {document_id}) назначение обычно индексируется на осколке, который отличается от его родительского документа. Это вызывает проблемы, поскольку запрос hasChild и hasParent не работает с документами / назначениями.

Кто-нибудь может подсказать, что может быть не так при индексации назначений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...