2015-12-23 1 views
0

J'essaie de créer un index à l'aide de l'outil de données d'importation.Créer une collection dans le service de recherche Azure à l'aide de la vue

La source de données provient de la vue d'azure sql.

SELECT 
b.Name, 
b.ID 
(SELECT 
'[' + STUFF((
    SELECT 
     ',{"name":"' + p.Name + '"}' 
    FROM Product p WHERE p.Brand = b.ID 
    FOR XML PATH (''), TYPE) 
.value('.', 'nvarchar(max)'), 1, 1, '') + ']') AS TAry, 
b.IsDelete, 
b.ModifyDatetime 
from Brand b 

Colonne avec Tary retournera chaîne de format JSON comme: [{ "name": "Test1"}, { "name": "Test2"}]

Dans les propriétés Indexder avec le champ Tary a choisi le type Collection (Edm.String)

Après créer, il est une erreur retour, le message ci-dessous:

« le champ de données 'Tary' a une valeur non valide le type était attendu Collection (Edm.String). '. "

Merci pour votre réponse.

J'ai essayer ce format de type: [Test1" , « Test2 »] toujours pas

Répondre

1

Pour ce faire, vous devez utiliser Azure Search API REST pour mettre en place une cartographie sur le terrain avec la fonction jsonArrayToStringCollection Prenez.. un oeil à this article pour obtenir des instructions détaillées

+0

en outre, le format de la chaîne doit être un tableau de chaînes littérales:.. [ « rouge », « bleu », « vert »] –

+0

Firs à tous merci pour la réponse je 1. Si j'ai défini le champ TAry comme EDM.String, le ork? 2.mettre en place la cartographie de champ est la dernière action pour terminer cela? 3.si la collection (Edm.String) peut-elle être consultée? – kkman021

+0

1. jsonArrayToStringCollection produit une collection de chaînes, son champ cible doit donc être une collection de chaînes. 2. Devrait être 3. Oui –