Добавление сопоставления полей с ‘base64Encode’ в поле индекса путем вызова конечной точки REST не работает: «Найден ресурс без имени типа»

#azure-cognitive-search

#azure-cognitive-search

Вопрос:

Я пытаюсь обновить индекс поиска (с помощью индексатора обновления), отправив запрос PUT https://searchservicename.search.windows.net/indexes/indexName?api-version=2017-11-11 , и он не работает.

Если я отправлю точно такой же запрос со списком полей, запрос будет выполнен должным образом, и я получу 200. Как только я пытаюсь добавить fieldMappings , я получаю сообщение об ошибке.

Мой Json я добавляю в запрос как «application / json»:

 {
  "name": "indexName",
  "fields": [
    <List of Valid Fields w/ Valid Types>
  ],
  "fieldMappings": [
    {
      "sourceFieldName": "fieldName",
      "targetFieldName": "fieldName",
      "mappingFunction": {
        "name": "base64Encode"
      }
    }
  ]
}
 

При вызове API я получаю ошибку:

 {Search request failed: {"error":{"code":"","message":"The request is invalid. Details: index : A resource without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified.rn"}}
 

Я ожидаю, что запрос вернет 200 и добавит сопоставление полей.

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

Дайте мне знать, если вам понадобится какая-либо другая информация от меня — спасибо.

Ответ №1:

Сопоставления полей должны добавляться в индексатор, а не в индекс. На основании вашего запроса вы пытаетесь обновить индекс.

Комментарии:

1. Ах, спасибо. Я знал, что это должно быть что-то очевидное, чего мне не хватает. Теперь перейдем к индексаторам