Verbessern eines Index zum Einschließen mehrerer Sprachen
Einem Suchindex kann Unterstützung für mehrere Sprachen hinzugefügt werden. Sie können die Sprachunterstützung manuell hinzufügen, indem Sie alle übersetzten Textfelder in allen verschiedenen Sprachen bereitstellen, die Sie unterstützen möchten. Sie können auch Azure KI Services verwenden, um übersetzten Text über eine Anreicherungspipeline bereitzustellen.
Hier sehen Sie, wie Sie Felder mit verschiedenen Sprachen zu einem Index hinzufügen. Danach beschränken Sie Ergebnisse auf Felder mit bestimmten Sprachen. Abschließend erstellen Sie ein Bewertungsprofil, um die Muttersprache Ihrer Endbenutzer zu verstärken.
Hinzufügen von sprachspezifischen Feldern
Um einem Index mehreren Sprachen hinzuzufügen, identifizieren Sie zunächst alle Felder, für die eine Übersetzung erforderlich ist. Duplizieren Sie dann diese Felder für jede Sprache, die Sie unterstützen möchten.
Wenn beispielsweise ein Index über ein Beschreibungsfeld auf Englisch verfügt, fügen Sie „description_fr“ für die französische Übersetzung und „description_de“ für Deutsch hinzu. Fügen Sie der Definition jedes Felds das entsprechende Sprachanalysetool hinzu.
Die JSON-Definition des Indexes könnte wie folgt aussehen:
{
"name": "description",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "en.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
{
"name": "description_de",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "de.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
{
"name": "description_fr",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "fr.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
{
"name": "description_it",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "it.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
Einschränken der Felder für eine Sprache
In diesem Modul haben Sie bereits erfahren, wie Sie die von einer Suchanfrage zurückgegebenen Felder einschränken. Sie können auch auswählen, welche Felder durchsucht werden. Ihre sprachspezifische Suchlösung kann diese beiden Features kombinieren, um sich auf Felder mit bestimmten Sprachen zu konzentrieren.
search='parfait pour se divertir'&$select=listingId, description_fr, city, region, tags&$searchFields=tags, description_fr&queryType=full
Die Verwendung der Eigenschaften searchFields
und select
in den obigen Ergebnissen gibt diese Ergebnisse aus der Beispieldatenbank für Immobilien zurück.
{
"@odata.context": "https://advanced-cognitive-search.search.windows.net/indexes('realestate-us-sample-index')/$metadata#docs(*)",
"value": [
{
"@search.score": 12.124968,
"listingId": "OTM4MjY1OA2",
"description_fr": "Il s'agit d'un condo et est parfait pour se divertir. Cette maison offre des vues côtières Situé à proximité d'une rivière et un bureau, moulures and une véranda couverte.",
"city": "Seattle",
"region": "wa",
"tags": [
"condo",
"entertaining",
"coastal views",
"river",
"office",
"crown mouldings",
"covered front porch"
]
},
Anreichern eines Indexes mit mehreren Sprachen mithilfe von Azure KI Services
Wenn Sie keinen Zugriff auf Übersetzungen haben, können Sie Ihren Index mithilfe von Azure KI Services anreichern und übersetzte Felder hinzufügen.
Dazu führen Sie die folgenden Schritte aus: Hinzufügen von Feldern für jede Sprache, Hinzufügen eines Skills für jede Sprache und Zuordnen des übersetzten Texts zu den richtigen Feldern.
Fügen wir jetzt zur Veranschaulichung einem Beispielindex für Immobilien japanische und ukrainische Übersetzungen hinzu.
Hinzufügen der neuen Felder
Fügen Sie dem Index zwei neue Felder mit den folgenden Eigenschaften hinzu. Im ersten wird die japanische Übersetzung gespeichert, im zweiten die ukrainische:
{
"name": "description_jp",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "ja.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
{
"name": "description_uk",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "uk.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
}
Hinzufügen der Übersetzungsskills
Sie fügen der Skillsetdefinition zwei Skills hinzu, um die document/description
-Felder in die beiden Sprachen zu übersetzen.
"skills": [
{
"@odata.type": "#Microsoft.Skills.Text.TranslationSkill",
"name": "#1",
"description": null,
"context": "/document/description",
"defaultFromLanguageCode": "en",
"defaultToLanguageCode": "ja",
"suggestedFrom": "en",
"inputs": [
{
"name": "text",
"source": "/document/description"
}
],
"outputs": [
{
"name": "translatedText",
"targetName": "description_jp"
}
]
},
{
"@odata.type": "#Microsoft.Skills.Text.TranslationSkill",
"name": "#2",
"description": null,
"context": "/document/description",
"defaultFromLanguageCode": "en",
"defaultToLanguageCode": "uk",
"suggestedFrom": "en",
"inputs": [
{
"name": "text",
"source": "/document/description"
}
],
"outputs": [
{
"name": "translatedText",
"targetName": "description_uk"
}
]
}
]
Zuordnen der übersetzten Ausgabe im Index
Der letzte Schritt besteht darin, den Indexer zu aktualisieren, um den übersetzten Text im Index zuzuordnen.
"outputFieldMappings": [
{
"sourceFieldName": "/document/description/description_jp",
"targetFieldName": "description_jp"
},
{
"sourceFieldName": "/document/description/description_uk",
"targetFieldName": "description_uk"
}
]
Alle Dokumente verfügen jetzt über zwei neue übersetzte Beschreibungsfelder.
"value": [
{
"@search.score": 1,
"listingId": "OTM4MjI2NQ2",
"beds": 5,
"baths": 4,
"description": "This is an apartment residence and is perfect for entertaining. This home provides lakefront property located close to parks and features a detached garage, beautiful bedroom floors, and lots of storage.",
"description_de": "Dies ist eine Wohnanlage und ist perfekt für Unterhaltung. Dieses Haus bietet Seeliegenschaft Parks in der Nähe und verfügt über eine freistehende Garage schöne Zimmer-Etagen and viel Stauraum.",
"description_fr": "Il s'agit d'un appartement de la résidence et est parfait pour se divertir. Cette maison offre propriété au bord du lac Situé à proximité de Parcs et dispose d'un garage détaché, planchers de belle chambre and beaucoup de rangement.",
"description_it": "Si tratta di un appartamento residence ed è perfetto per intrattenere. Questa casa fornisce proprietà lungolago Situato vicino ai parchi e dispone di un garage indipendente, piani di bella camera da letto and sacco di stoccaggio.",
"description_es": "Se trata de una residencia Apartamento y es perfecto para el entretenimiento. Esta casa ofrece propiedad de lago situado cerca de parques y cuenta con un garaje independiente, pisos de dormitorio hermoso and montón de almacenamiento.",
"description_pl": "Jest to apartament residence i jest idealny do zabawy. Ten dom zapewnia lakefront Wlasciwosc usytuowany w poblizu parków i oferuje garaz wolnostojacy, piekna sypialnia podlogi and mnóstwo miejsca do przechowywania.",
"description_nl": "Dit is een appartement Residentie en is perfect voor entertaining. Dit huis biedt lakefront eigenschap vlakbij parken en beschikt over een vrijstaande garage, mooie slaapkamer vloeren and veel opslag.",
"description_jp": "これはアパートの住居であり、娯楽に最適です。 この家は公園の近くに位置する湖畔のプロパティを提供し、独立したガレージ、美しいベッドルームの床とストレージの多くを備えています。",
"description_uk": "Це багатоквартирна резиденція і прекрасно підходить для розваг. Цей будинок забезпечує нерухомість на березі озера, розташовану недалеко від парків, і має окремий гараж, красиві підлоги спальні та багато місць для зберігання речей.",
...
},