增強索引以包含多種語言
您可以將多種語言的支援新增至搜尋索引。 您可以藉由提供您想要支援之所有不同語言的所有翻譯文字欄位,手動新增語言支援。 您也可以選擇使用 Azure AI 服務,透過擴充管線提供翻譯的文字。
在這裡,您將了解如何將具有不同語言的欄位新增至索引。 然後,您會將結果限制為具有特定語言的欄位。 最後,建立評分設定檔來提升終端使用者的原生語言。
新增語言特定欄位
若要將多種語言新增至索引,請先識別所有需要翻譯的欄位。 然後針對您想要支援的每個語言重複這些欄位。
例如,如果索引具有英文描述欄位,您就會新增法文翻譯的 description_fr,以及德文的 description_de。 針對每個欄位,將 對應的語言分析器 新增至其定義。
索引的 JSON 定義看起來可能如下:
{
"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": []
},
限制語言的欄位
在此課程模組中,您已了解如何限制搜尋要求中傳回的欄位。 您也可以選取要搜尋的欄位。 您的語言特定搜尋解決方案可以結合這兩項功能,將焦點放在欄位中具有特定語言的欄位。
search='parfait pour se divertir'&$select=listingId, description_fr, city, region, tags&$searchFields=tags, description_fr&queryType=full
在上述結果中使用 searchFields
和 select
屬性,會從實際資產範例資料庫傳回這些結果。
{
"@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"
]
},
使用 Azure AI 服務擴充具有多種語言的索引
如果您沒有翻譯的存取權,您可以使用 Azure AI 服務來擴充索引並新增翻譯的欄位。
這些步驟會新增每個語言的欄位、為每個語言新增技能,然後將翻譯的文字對應至正確的欄位。
例如,讓我們將日文和烏克蘭文翻譯新增至範例零售屬性索引。
新增新欄位
您使用下列屬性,將兩個新欄位新增至索引,第一個欄位會儲存日文翻譯,第二個欄位是烏克蘭文:
{
"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": []
}
新增翻譯技能集
您會將兩個技能新增至技能集定義,將 document/description
欄位翻譯成兩種語言。
"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"
}
]
}
]
將翻譯的輸出對應至索引
最後一個步驟是更新索引子,以將翻譯的文字對應至索引。
"outputFieldMappings": [
{
"sourceFieldName": "/document/description/description_jp",
"targetFieldName": "description_jp"
},
{
"sourceFieldName": "/document/description/description_uk",
"targetFieldName": "description_uk"
}
]
文件現在全都有兩個新的翻譯描述欄位。
"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": "Це багатоквартирна резиденція і прекрасно підходить для розваг. Цей будинок забезпечує нерухомість на березі озера, розташовану недалеко від парків, і має окремий гараж, красиві підлоги спальні та багато місць для зберігання речей.",
...
},