Synonimy w usłudze Azure AI Search

W usłudze wyszukiwania mapa synonimów kojarzy równoważne terminy, rozszerzając zakres zapytania bez konieczności faktycznego podawania terminu przez użytkownika. Na przykład przy założeniu, że "pies", "psi" i "szczeniak" są mapowane synonimy, zapytanie dotyczące dopasowań "psów" w dokumencie zawierającym "psa". Możesz utworzyć wiele map synonimów dla różnych języków, takich jak wersje angielskie i francuskie lub leksykony, jeśli zawartość zawiera żargon techniczny, slang lub niejasną terminologię.

Niektóre kluczowe kwestie dotyczące map synonimów:

  • Mapa synonimów to zasób najwyższego poziomu, który można utworzyć raz i używać przez wiele indeksów.
  • Mapa synonimów ma zastosowanie do pól ciągów.
  • Możesz utworzyć i przypisać mapę synonimów w dowolnym momencie bez zakłóceń w indeksowaniu ani zapytaniach.
  • Warstwa usługi ustawia limity liczby map synonimów, które można utworzyć.
  • Usługa wyszukiwania może mieć wiele map synonimów, ale w indeksie definicja pola może mieć tylko jedno przypisanie mapy synonimów.

Tworzenie mapy synonimów

Mapa synonimów składa się z nazw, formatu i reguł, które działają jako wpisy mapy synonimów. Jedynym obsługiwanym formatem jest solr, a solr format określa konstrukcję reguły.

Aby utworzyć mapę synonimów, wykonaj to programowo. Portal nie obsługuje definicji mapy synonimów.

Utwórz mapę synonimów (interfejs API REST), aby utworzyć mapę synonimów.

POST /synonymmaps?api-version=2024-07-01
{
    "name": "geo-synonyms",
    "format": "solr",
    "synonyms": "
        USA, United States, United States of America\n
        Washington, Wash., WA => WA\n"
}

Definiowanie reguł

Reguły mapowania są zgodne ze specyfikacją filtru synonimów typu open source oprogramowania Apache Solr opisaną w tym dokumencie: SynonymFilter. Format solr obsługuje dwa rodzaje reguł:

  • równoważność (gdzie terminy są równymi zamiennikami w zapytaniu)

  • jawne mapowania (gdzie terminy są mapowane na jeden jawny termin)

Każda reguła jest rozdzielana znakiem nowego wiersza (\n). Możesz zdefiniować maksymalnie 5000 reguł na mapę synonimów w bezpłatnej usłudze i 20 000 reguł na mapę w innych warstwach. Każda reguła może mieć maksymalnie 20 rozszerzeń (lub elementów w regule). Aby uzyskać więcej informacji, zobacz Limity synonimów.

Analizatory zapytań automatycznie mają małe litery, wszystkie wielkie lub mieszane terminy. Aby zachować znaki specjalne w ciągu, takim jak przecinek lub kreska, dodaj odpowiednie znaki ucieczki podczas tworzenia mapy synonimów.

Reguły równoważności

Reguły dla terminów równoważnych są rozdzielane przecinkami w ramach tej samej reguły. W pierwszym przykładzie zapytanie rozszerza USA wartość USA OR LUB "United States" "United States of America". Zwróć uwagę, że jeśli chcesz dopasować frazę, samo zapytanie musi być zapytaniem frazy ujętej w cudzysłów.

W przypadku równoważności zapytanie rozszerzy dog zapytanie, aby również uwzględnić puppy i canine.

{
"format": "solr",
"synonyms": "
    USA, United States, United States of America\n
    dog, puppy, canine\n
    coffee, latte, cup of joe, java\n"
}

Jawne mapowanie

Reguły jawnego mapowania są oznaczone strzałką =>. Po określeniu termin sekwencji zapytania wyszukiwania, który pasuje do lewej strony => , jest zastępowany alternatywami po prawej stronie zapytania.

W jawnym przypadku zapytanie dla WashingtonWash. elementu lub WA zostanie przepisane jako WA, a aparat zapytań szuka tylko dopasowań w terminie WA. Jawne mapowanie ma zastosowanie tylko w określonym kierunku i nie zapisuje ponownie zapytania WA Washington w tym przypadku.

{
"format": "solr",
"synonyms": "
    Washington, Wash., WA => WA\n
    California, Calif., CA => CA\n"
}

Ucieczka znaków specjalnych

Synonimy są analizowane podczas przetwarzania zapytań tak samo jak w przypadku każdego innego terminu zapytania, co oznacza, że reguły dla znaków zarezerwowanych i specjalnych mają zastosowanie do terminów w mapie synonimów. Lista znaków wymagających ucieczki różni się między prostą składnią a pełną składnią:

Aby zachować znaki odrzucane przez analizator domyślny, zastąp analizator, który je zachowuje. Niektóre opcje obejmują analizatory języka naturalnego firmy Microsoft, które zachowują wyrazy łączników lub analizator niestandardowy dla bardziej złożonych wzorców. Aby uzyskać więcej informacji, zobacz Częściowe terminy, wzorce i znaki specjalne.

W poniższym przykładzie pokazano przykład sposobu ucieczki znaku z ukośnikiem odwrotnym:

{
    "format": "solr",
    "synonyms": "WA\, USA, WA, Washington\n"
}

Ponieważ ukośnik odwrotny jest znakiem specjalnym w innych językach, takich jak JSON i C#, prawdopodobnie trzeba go podwoić. Oto przykład w formacie JSON:

{
    "format":"solr",
    "synonyms": "WA\\, USA, WA, Washington"
}

Zarządzanie mapami synonimów

Możesz zaktualizować mapę synonimów bez zakłócania obciążeń zapytań i indeksowania. Jednak po dodaniu mapy synonimów do pola, jeśli usuniesz mapę synonimów, każde zapytanie zawierające dane pola nie powiedzie się z błędem 404.

Tworzenie, aktualizowanie i usuwanie mapy synonimów jest zawsze operacją całego dokumentu. Nie można aktualizować ani usuwać części mapy synonimów przyrostowo. Aktualizowanie nawet pojedynczej reguły wymaga ponownego załadowania.

Przypisywanie synonimów do pól

Po utworzeniu mapy synonimów przypisz ją do pola w indeksie. Aby przypisać mapy synonimów, wykonaj to programowo. Portal nie obsługuje skojarzeń pól mapy synonimów.

  • Pole musi być typu Edm.String lub Collection(Edm.String)
  • Pole musi mieć "searchable":true
  • Pole może mieć tylko jedną mapę synonimów

Jeśli mapa synonimów istnieje w usłudze wyszukiwania, jest używana w następnym zapytaniu bez konieczności ponownego indeksowania ani ponownego kompilowania.

Użyj interfejsu API REST Create or Update Index (Create or Update Index), aby zmodyfikować definicję pola.

POST /indexes?api-version=2024-07-01
{
    "name":"hotels-sample-index",
    "fields":[
        {
            "name":"description",
            "type":"Edm.String",
            "searchable":true,
            "synonymMaps":[
            "en-synonyms"
            ]
        },
        {
            "name":"description_fr",
            "type":"Edm.String",
            "searchable":true,
            "analyzer":"fr.microsoft",
            "synonymMaps":[
            "fr-synonyms"
            ]
        }
    ]
}

Zapytanie dotyczące równoważnych lub zamapowanych pól

Przypisanie pola synonimu nie zmienia sposobu pisania zapytań. Po przypisaniu mapy synonimów jedyną różnicą jest to, że jeśli termin zapytania istnieje na mapie synonimów, wyszukiwarka rozwija lub ponownie zapisuje termin lub frazę w zależności od reguły.

Jak synonimy są używane podczas wykonywania zapytania

Synonimy są techniką rozszerzania zapytań, która uzupełnia zawartość indeksu równoważnymi terminami, ale tylko w przypadku pól, które mają przypisanie synonimu. Jeśli zapytanie w zakresie pola wyklucza pole z włączoną obsługą synonimów, nie widzisz dopasowań z mapy synonimów.

W przypadku pól z obsługą synonimów synonimy podlegają tej samej analizie tekstu co skojarzone pole. Jeśli na przykład pole jest analizowane przy użyciu standardowego analizatora Lucene, terminy synonimów podlegają również standardowemu analizatorowi Lucene w czasie zapytania. Jeśli chcesz zachować interpunkcję, taką jak kropki lub kreski, w terminie synonimu zastosuj analizator zachowujący zawartość w polu.

Funkcja synonimów wewnętrznie ponownie zapisuje oryginalne zapytanie z synonimami z operatorem OR. Z tego powodu profile wyróżniania trafień i oceniania traktują oryginalny termin i synonimy jako równoważne.

Synonimy dotyczą tylko zapytań tekstowych w dowolnej formie i nie są obsługiwane w przypadku filtrów, aspektów, autouzupełniania ani sugestii. Autouzupełnianie i sugestie są oparte tylko na oryginalnym terminie; Dopasowania synonimów nie są wyświetlane w odpowiedzi.

Rozszerzenia synonimów nie mają zastosowania do terminów wyszukiwania symboli wieloznacznych; terminy prefiksu, rozmyte i wyrażenia regularne nie są rozszerzane.

Jeśli musisz wykonać pojedyncze zapytanie, które stosuje rozszerzenie synonimu i symbol wieloznaczne, wyrażenia regularne lub wyszukiwania rozmyte, możesz połączyć zapytania przy użyciu składni OR. Na przykład aby połączyć synonimy z symbolami wieloznacznymi dla prostej składni zapytania, termin to <query> | <query>*.

Jeśli masz istniejący indeks w środowisku programistycznym (nieprodukcyjnym), poeksperymentuj z małym słownikiem, aby zobaczyć, jak dodanie synonimów zmienia środowisko wyszukiwania, w tym wpływ na profile oceniania, wyróżnianie trafień i sugestie.

Następne kroki