여러 언어를 포함하도록 인덱스 향상
여러 언어에 대한 지원을 검색 인덱스에 추가할 수 있습니다. 지원하려는 다른 모든 언어로 번역된 모든 텍스트 필드를 제공하여 언어 지원을 수동으로 추가할 수 있습니다. 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": "Це багатоквартирна резиденція і прекрасно підходить для розваг. Цей будинок забезпечує нерухомість на березі озера, розташовану недалеко від парків, і має окремий гараж, красиві підлоги спальні та багато місць для зберігання речей.",
...
},