У меня есть индекс с несколькими полями типа Edm.String
и Collection(Edm.String)
. Я хочу иметь еще один индекс с теми же полями плюс другое поле типа Edm.Double
. Когда я создаю такой индекс и попытаться добавить то же значение (плюс вновь добавленный Edm.Double
значения), как я сделал с первым индексом, я получаю следующее сообщение об ошибке:Ошибка при добавлении новых документов в Azure. Индекс поиска
{
"error": {
"code": "",
"message": "The request is invalid. Details: parameters : An unexpected 'StartArray' node was found when reading from the JSON reader. A 'PrimitiveValue' node was expected.\r\n"
}
}
Кто-нибудь знает, что это за ошибку означает? Я пробовал искать его в Интернете, но я не мог найти ничего, связанного с моей ситуацией. Запрос образца Я посылаю на новый индекс выглядит следующим образом:
POST https://myservicename.search.windows.net/indexes/newindexname/docs/index?api-version=2016-09-01
{
"value": [{
"@search.action": "upload",
"keywords": ["red", "lovely", "glowing", "cute"],
"name": "sample document",
"weight": 0.5,
"id": "67"
}]
}
старый индекс тот же, но он не имеет параметр «вес».
Edit: я создал индекс с помощью портала, поэтому у меня нет точной JSON для создания индекса, но поля примерно так:
Field Type Attributes Analyzer
---------------------------------------------------------------------------------------
id Edm.String Key, Retrievable
name Edm.String Searchable, Filterable, Retrievable Eng-Microsoft
keywords Collection(Edm.String) Searchable, Filterable, Retrievable Eng-Microsoft
weight Edm.Double Filterable, Sortable
Можете ли вы поделиться определением индекса 'newindexname'? В частности, поля и их типы данных. –
Я не могу воспроизвести проблему. Я создал идентичный индекс и отправил тот же запрос индексирования с помощью PowerShell, и он отлично работает. Можете ли вы проверить, что JSON вы разместили здесь именно то, что вы отправили в запросе? –
@BruceJohnston Оказывается, я ошибся при создании индекса с портала и выбрал 'Edm.String' для поля, когда я хотел выбрать' Collection (Edm.String) '. Я воссоздал индекс, и все выглядит отлично. Извините за то, что вы тратили свое время с тривиальной ошибкой. – halileohalilei