Преобразователь ошибок Elastic Search [email.keyword] другого типа, current_type [текст], merged_type [ключевое слово] - PullRequest
0 голосов
/ 26 июня 2019

Я выполняю восстановление в PHP для вновь созданного индекса, поэтому данные отсутствуют. Я получаю исключение, которое я ожидаю увидеть, если данные уже были там, но индекс создается заново.Есть ли что-то особенное, что я имею отношение к upsert на вновь созданные индексы?Upsert работает нормально, пока я не добавлю пользовательский анализатор.

{
 "error":{
  "root_cause":[
     {
        "type":"remote_transport_exception",
        "reason":"[8902bb997443][127.0.0.1:9300][indices:data/write/update[s]]"
     }
  ],
    "type":"illegal_argument_exception",
    "reason":"mapper [email.keyword] of different type, current_type [text], merged_type [keyword]"
  },
  "status":400
}

Ниже приведен мой код создания индекса

   {
       "index":"myindex",
       "body":{
          "settings":{

             "analysis":{
                "analyzer":{
                   "my_email_analyzer":{
                      "type":"custom",
                      "tokenizer":"uax_url_email",
                      "filter":[
                         "lowercase",
                         "stop"
                      ]
                   }
                }
             }

          },
          "mappings":{
             "properties":{
                "ak_additional_recovery_email":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "ak_city_town":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "ak_first_name":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "ak_last_name":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "ak_second_additional_recovery_email":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "ak_state":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "email":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"text",
                         "analyzer":"my_email_analyzer"
                      }
                   }
                },
                "indexedHash":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "uID":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"keyword",
                         "ignore_above":256
                      }
                   }
                },
                "uName":{
                   "type":"text",
                   "fields":{
                      "keyword":{
                         "type":"text",
                         "analyzer":"my_email_analyzer"
                      }
                   }
                }
             }
          }
       }
    }

А вот код PHP, пытающийся выполнить upsert

    $this->client->update([
        'id'    => $data['uID'],
        'body'  => [
            'doc'    => $data,
            'upsert' => [
                'uName'                               => $data['uName'],
                'email'                               => $data['email'],
                'ak_first_name'                       => $data['ak_first_name'],
                'ak_last_name'                        => $data['ak_last_name'],
                'ak_city_town'                        => $data['ak_city_town'],
                'ak_state'                            => $data['ak_state']
            ]
        ],
        'index' => $this->dbName,
        'type'  => 'general'
    ]);

1 Ответ

0 голосов
/ 26 июня 2019

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

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