Dodawanie analizatorów niestandardowych do pól ciągów w indeksie usługi Azure AI Search

Analizator niestandardowy to zdefiniowana przez użytkownika kombinacja jednego tokenizatora, co najmniej jednego filtru tokenu i co najmniej jednego filtru znaków. Analizator niestandardowy jest określany w indeksie wyszukiwania, a następnie odwołuje się do nazwy w definicjach pól, które wymagają analizy niestandardowej. Analizator niestandardowy jest wywoływany dla poszczególnych pól. Atrybuty w polu określają, czy są używane do indeksowania, zapytań, czy obu tych elementów.

W analizatorze niestandardowym filtry znaków przygotowują tekst wejściowy przed przetworzeniem go przez tokenizator (na przykład usunięcie znaczników). Następnie tokenizator dzieli tekst na tokeny. Na koniec filtry tokenów modyfikują tokeny emitowane przez tokenizator. Aby zapoznać się z pojęciami i przykładami, zobacz Analizatory w usłudze Azure AI Search.

Dlaczego warto używać analizatora niestandardowego?

Analizator niestandardowy zapewnia kontrolę nad procesem konwertowania tekstu na tokeny z możliwością indeksowania i wyszukiwania, umożliwiając wybranie typów analizy lub filtrowania do wywołania oraz kolejności ich wystąpienia.

Tworzenie i przypisywanie analizatora niestandardowego, jeśli żaden z domyślnych (Lucence w warstwie Standardowa), wbudowany lub analizatory języka są wystarczające dla Twoich potrzeb. Możesz również utworzyć analizator niestandardowy, jeśli chcesz użyć wbudowanego analizatora z opcjami niestandardowymi. Jeśli na przykład chcesz zmienić wartość maxTokenLength w warstwie Standardowa, utwórz analizator niestandardowy o nazwie zdefiniowanej przez użytkownika, aby ustawić tę opcję.

Scenariusze, w których analizatory niestandardowe mogą być przydatne, obejmują:

  • Używanie filtrów znaków do usuwania znaczników HTML przed wprowadzaniem tekstu są tokenizowane lub zastępowanie niektórych znaków lub symboli.

  • Telefon wyszukiwania. Dodaj filtr fonetyczny, aby włączyć wyszukiwanie w oparciu o to, jak brzmi słowo, a nie sposób jego pisowni.

  • Wyłącz analizę leksykalną. Użyj analizatora słów kluczowych, aby utworzyć pola, które nie są analizowane.

  • Szybkie wyszukiwanie prefiksów/sufiksów. Dodaj filtr tokenu N-gram edge do prefiksów indeksów wyrazów, aby umożliwić szybkie dopasowywanie prefiksów. Połącz go z filtrem tokenu odwrotnego, aby wykonać dopasowywanie sufiksów.

  • Tokenizacja niestandardowa. Na przykład użyj tokenizatora białych znaków, aby podzielić zdania na tokeny przy użyciu białych znaków jako ogranicznika

  • Składanie ASCII. Dodaj filtr składania standardowego ASCII, aby znormalizować znaki diakrytyczne, takie jak ö lub ê w terminach wyszukiwania.

Uwaga

Analizatory niestandardowe nie są widoczne w witrynie Azure Portal. Jedynym sposobem dodania analizatora niestandardowego jest użycie kodu definiującego indeks.

Tworzenie niestandardowego analizatora

Aby utworzyć analizator niestandardowy, określ go w analyzers sekcji indeksu w czasie projektowania, a następnie odwołaj się do niego w przypadku wyszukiwania, Edm.String pól przy użyciu analyzer właściwości lub indexAnalyzer pary i searchAnalyzer .

Definicja analizatora zawiera nazwę, typ, co najmniej jeden filtr znaków, maksymalnie jeden tokenizer i co najmniej jeden filtr tokenu na potrzeby przetwarzania po tokenizacji. Filtry znaków są stosowane przed tokenizacją. Filtry tokenów i filtry znaków są stosowane od lewej do prawej.

  • Nazwy w analizatorze niestandardowym muszą być unikatowe i nie mogą być takie same jak żadne wbudowane analizatory, tokenizatory, filtry tokenów lub filtry znaków. Musi zawierać tylko litery, cyfry, spacje, kreski lub podkreślenia, mogą zaczynać i kończyć się tylko znakami alfanumerycznymi i jest ograniczona do 128 znaków.

  • Typ musi być #Microsoft.Azure.Search.CustomAnalyzer.

  • charFilters Może to być jeden lub więcej filtrów z filtrów znaków, przetworzonych przed tokenizacją, w podanej kolejności. Niektóre filtry znaków mają opcje, które można ustawić w charFilters sekcji. Filtry znaków są opcjonalne.

  • tokenizer jest dokładnie jednym tokenizatorem. Wymagana jest wartość. Jeśli potrzebujesz więcej niż jednego tokenizatora, możesz utworzyć wiele analizatorów niestandardowych i przypisać je na podstawie pola w schemacie indeksu.

  • tokenFilters może być jednym lub więcej filtrów z filtrów tokenów, przetworzonych po tokenizacji, w podanej kolejności. W przypadku filtrów tokenów, które mają opcje, dodaj sekcję, aby określić konfigurację tokenFilter . Filtry tokenów są opcjonalne.

Analizatory nie mogą tworzyć tokenów dłuższych niż 300 znaków lub indeksowanie zakończy się niepowodzeniem. Aby przyciąć długi token lub wykluczyć je, użyj odpowiednio truncateTokenFilter i LengthTokenFilter. Zobacz Filtry tokenów , aby uzyskać informacje.

"analyzers":(optional)[
   {
      "name":"name of analyzer",
      "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
      "charFilters":[
         "char_filter_name_1",
         "char_filter_name_2"
      ],
      "tokenizer":"tokenizer_name",
      "tokenFilters":[
         "token_filter_name_1",
         "token_filter_name_2"
      ]
   },
   {
      "name":"name of analyzer",
      "@odata.type":"#analyzer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"charFilters":(optional)[
   {
      "name":"char_filter_name",
      "@odata.type":"#char_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenizers":(optional)[
   {
      "name":"tokenizer_name",
      "@odata.type":"#tokenizer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenFilters":(optional)[
   {
      "name":"token_filter_name",
      "@odata.type":"#token_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
]

W ramach definicji indeksu możesz umieścić tę sekcję w dowolnym miejscu w treści żądania tworzenia indeksu, ale zwykle jest to na końcu:

{
  "name": "name_of_index",
  "fields": [ ],
  "suggesters": [ ],
  "scoringProfiles": [ ],
  "defaultScoringProfile": (optional) "...",
  "corsOptions": (optional) { },
  "analyzers":(optional)[ ],
  "charFilters":(optional)[ ],
  "tokenizers":(optional)[ ],
  "tokenFilters":(optional)[ ]
}

Definicja analizatora jest częścią większego indeksu. Definicje filtrów znaków, tokenizatorów i filtrów tokenów są dodawane do indeksu tylko wtedy, gdy ustawiasz opcje niestandardowe. Aby użyć istniejącego filtru lub tokenizatora, określ go według nazwy w definicji analizatora. Aby uzyskać więcej informacji, zobacz Tworzenie indeksu (REST). Aby uzyskać więcej przykładów, zobacz Dodawanie analizatorów w usłudze Azure AI Search.

Testowanie analizatorów niestandardowych

Analizator testów (REST) umożliwia sprawdzenie, jak analizator dzieli dany tekst na tokeny.

Zażądaj

  POST https://[search service name].search.windows.net/indexes/[index name]/analyze?api-version=[api-version]
    Content-Type: application/json
    api-key: [admin key]

  {
     "analyzer":"my_analyzer",
     "text": "Vis-à-vis means Opposite"
  }

Response

  {
    "tokens": [
      {
        "token": "vis_a_vis",
        "startOffset": 0,
        "endOffset": 9,
        "position": 0
      },
      {
        "token": "vis_à_vis",
        "startOffset": 0,
        "endOffset": 9,
        "position": 0
      },
      {
        "token": "means",
        "startOffset": 10,
        "endOffset": 15,
        "position": 1
      },
      {
        "token": "opposite",
        "startOffset": 16,
        "endOffset": 24,
        "position": 2
      }
    ]
  }

Aktualizowanie analizatorów niestandardowych

Po zdefiniowaniu analizatora tokenu, filtru tokenu lub filtru znaków nie można go modyfikować. Nowe można dodać do istniejącego indeksu tylko wtedy, gdy flaga allowIndexDowntime ma wartość true w żądaniu aktualizacji indeksu:

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true

Ta operacja przełącza indeks w tryb offline przez co najmniej kilka sekund, powodując niepowodzenie indeksowania i żądań zapytań. Wydajność i dostępność zapisu indeksu może być obniżona przez kilka minut po zaktualizowaniu indeksu lub dłużej w przypadku bardzo dużych indeksów, ale te efekty są tymczasowe i ostatecznie rozwiązane samodzielnie.

Wbudowane analizatory

Jeśli chcesz użyć wbudowanego analizatora z opcjami niestandardowymi, tworzenie analizatora niestandardowego jest mechanizmem określania tych opcji. Natomiast aby użyć wbudowanego analizatora w stanie rzeczywistym, wystarczy odwołać się do niego według nazwy w definicji pola.

analyzer_name analyzer_type 1 Opis i opcje
Słowa kluczowego (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Traktuje całą zawartość pola jako pojedynczy token. Jest to przydatne w przypadku danych, takich jak kody pocztowe, identyfikatory i niektóre nazwy produktów.
Wzór PatternAnalyzer Elastycznie oddziela tekst na terminy za pomocą wzorca wyrażenia regularnego.

Opcje

małe litery (typ: bool) — określa, czy terminy są małe. Wartość domyślna to true.

pattern (typ: ciąg) — wzorzec wyrażenia regularnego odpowiadający separatorom tokenów. Wartość domyślna to \W+, która pasuje do znaków innych niż word.

flagi (typ: ciąg) — flagi wyrażeń regularnych. Wartość domyślna to pusty ciąg. Dozwolone wartości: CANON_EQ, CASE_INSENSITIVE, KOMENTARZE, DOTALL, LITERAŁ, MULTILINE, UNICODE_CASE, system UNIX_LINES

stopwords (typ: tablica ciągów) — lista stopwords. Wartość domyślna to pusta lista.
Prosty (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Dzieli tekst na litery inne niż litery i konwertuje je na małe litery.
Standardowych
(Nazywane również standard.lucene)
StandardAnalyzer Standardowy analizator Lucene składa się z standardowego tokenizatora, filtru małego i filtru zatrzymania.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna to 255. Tokeny dłuższe niż maksymalna długość są dzielone. Maksymalna długość tokenu, która może być używana, to 300 znaków.

stopwords (typ: tablica ciągów) — lista stopwords. Wartość domyślna to pusta lista.
standardasciifolding.lucene (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Analizator standardowy z filtrem składania Ascii.
Zatrzymać StopAnalyzer Dzieli tekst na litery inne niż litery, stosuje małe litery i filtry tokenu stopword.

Opcje

stopwords (typ: tablica ciągów) — lista stopwords. Wartość domyślna to wstępnie zdefiniowana lista języka angielskiego.
Odstępu (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Analizator używający tokenizatora odstępów. Tokeny, które są dłuższe niż 255 znaków, są podzielone.

1 Typy analizatorów są zawsze prefiksowane w kodzie, #Microsoft.Azure.Search tak aby PatternAnalyzer faktycznie zostały określone jako #Microsoft.Azure.Search.PatternAnalyzer. Usunęliśmy prefiks zwięzłości, ale prefiks jest wymagany w kodzie.

Analyzer_type jest udostępniany tylko dla analizatorów, które można dostosować. Jeśli nie ma żadnych opcji, tak jak w przypadku analizatora słów kluczowych, nie ma skojarzonego typu #Microsoft.Azure.Search.

Filtry znaków

Filtry znaków dodają przetwarzanie, zanim ciąg osiągnie tokenizator.

Usługa Azure AI Search obsługuje filtry znaków na poniższej liście. Więcej informacji na temat każdego z nich można znaleźć w dokumentacji interfejsu API Lucene.

char_filter_name char_filter_type 1 Opis i opcje
html_strip (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Filtr znaków, który próbuje usunąć konstrukcje HTML.
mapping MappingCharFilter Filtr znaków, który stosuje mapowania zdefiniowane za pomocą opcji mapowania. Dopasowanie jest chciwe (najdłuższe dopasowanie wzorca w danym punkcie wygrywa). Zastąpienie może być pustym ciągiem.

Opcje

mapowania (typ: tablica ciągów) — lista mapowań w następującym formacie: a=>b (wszystkie wystąpienia znaku a są zastępowane znakiem b). Wymagane.
pattern_replace PatternReplaceCharFilter Filtr znaków, który zastępuje znaki w ciągu wejściowym. Używa wyrażenia regularnego do identyfikowania sekwencji znaków w celu zachowania i wzorca zastępczego w celu zidentyfikowania znaków do zastąpienia. Na przykład tekst wejściowy = aa bb aa bb, pattern=(aa)\\\s+(bb) replacement=$1#$2, result = aa#bb aa#bb.

Opcje

pattern (typ: ciąg) — wymagane.

replacement (typ: ciąg) — wymagane.

1 Typy filtrów char są zawsze prefiksowane w kodzie, #Microsoft.Azure.Search tak aby MappingCharFilter faktycznie zostały określone jako #Microsoft.Azure.Search.MappingCharFilter. Usunęliśmy prefiks, aby zmniejszyć szerokość tabeli, ale pamiętaj, aby uwzględnić go w kodzie. Zwróć uwagę, że char_filter_type jest dostępna tylko dla filtrów, które można dostosować. Jeśli nie ma żadnych opcji, tak jak w przypadku html_strip, nie ma skojarzonego typu #Microsoft.Azure.Search.

Tokenizatory

Tokenizer dzieli ciągły tekst na sekwencję tokenów, takich jak dzielenie zdania na wyrazy lub wyraz na formularze główne.

Usługa Azure AI Search obsługuje tokenizatory na poniższej liście. Więcej informacji na temat każdego z nich można znaleźć w dokumentacji interfejsu API Lucene.

tokenizer_name tokenizer_type 1 Opis i opcje
Klasyczny ClassicTokenizer Tokenizator oparty na gramatyce, który jest odpowiedni do przetwarzania większości dokumentów w języku europejskim.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna: 255, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone.
edgeNGram EdgeNGramTokenizer Tokenizuje dane wejściowe z krawędzi do n-gramów danego rozmiaru.

Opcje

minGram (typ: int) — wartość domyślna: 1, maksymalna: 300.

maxGram (typ: int) — wartość domyślna: 2, maksymalna: 300. Musi być większy niż minGram.

tokenChars (typ: tablica ciągów) — klasy znaków do przechowywania w tokenach. Dozwolone wartości:
letter, digit, whitespace, punctuation, symbol. Domyślnie jest to pusta tablica — przechowuje wszystkie znaki.
keyword_v2 Słowo kluczoweTokenizerV2 Emituje całe dane wejściowe jako pojedynczy token.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna: 256, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone.
Literę (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Dzieli tekst na litery inne niż litery. Tokeny, które są dłuższe niż 255 znaków, są podzielone.
Małe litery (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Dzieli tekst na litery inne niż litery i konwertuje je na małe litery. Tokeny, które są dłuższe niż 255 znaków, są podzielone.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Dzieli tekst przy użyciu reguł specyficznych dla języka.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu, domyślna: 255, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone. Tokeny dłuższe niż 300 znaków są najpierw podzielone na tokeny o długości 300, a następnie każdy z tych tokenów jest podzielony na podstawie zestawu maxTokenLength.

isSearchTokenizer (typ: bool) — ustaw wartość true, jeśli jest używana jako tokenizer wyszukiwania, ustaw wartość false, jeśli jest używana jako tokenizer indeksowania.

language (typ: ciąg) — język do użycia, wartość domyślna english. Dozwolone wartości obejmują:
bangla, bulgarian, catalan, chineseSimplified, chineseTraditional, croatian, czech, danish, dutch, english, french, german, greek, gujarati, hindi, icelandic, indonesian, italian, japanese, kannada, korean, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovenian, spanish, swedish, tamil, telugu, thai, ukrainian, urdu, vietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Dzieli tekst przy użyciu reguł specyficznych dla języka i zmniejsza liczbę wyrazów do ich podstawowych formularzy. Ten tokenizer wykonuje lemmatyzację.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu, domyślna: 255, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone. Tokeny dłuższe niż 300 znaków są najpierw podzielone na tokeny o długości 300, a następnie każdy z tych tokenów jest podzielony na podstawie zestawu maxTokenLength.

isSearchTokenizer (typ: bool) — ustaw wartość true, jeśli jest używana jako tokenizer wyszukiwania, ustaw wartość false, jeśli jest używana jako tokenizer indeksowania.

language (typ: ciąg) — język do użycia, wartość domyślna english. Dozwolone wartości obejmują:
arabic, bangla, bulgarian, catalan, croatian, czech, danish, dutch, english, estonian, finnish, french, german, greek, gujarati, hebrew, hindi, hungarian, icelandic, indonesian, italian, kannada, latvian, lithuanian, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovak, slovenian, spanish, swedish, tamil, telugu, turkish, ukrainian, urdu
nGram NGramTokenizer Tokenizuje dane wejściowe do n-gramów danego rozmiaru.

Opcje

minGram (typ: int) — wartość domyślna: 1, maksymalna: 300.

maxGram (typ: int) — wartość domyślna: 2, maksymalna: 300. Musi być większy niż minGram.

tokenChars (typ: tablica ciągów) — klasy znaków do przechowywania w tokenach. Dozwolone wartości: letter, , whitespacedigit, punctuation, symbol. Domyślnie jest to pusta tablica — przechowuje wszystkie znaki.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizer dla hierarchii przypominających ścieżkę. Opcje

Ogranicznik (typ: ciąg) — wartość domyślna: '/.

replace (typ: ciąg) — w przypadku ustawienia zastępuje znak ogranicznika. Wartość domyślna jest taka sama jak wartość ogranicznika.

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna: 300, maksymalna: 300. Ścieżki dłuższe niż maxTokenLength są ignorowane.

reverse (typ: bool) — jeśli wartość true, generuje token w odwrotnej kolejności. Wartość domyślna: false.

skip (typ: wartość logiczna) — tokeny początkowe do pominięcia. Wartość domyślna to 0.
Wzór PatternTokenizer Ten tokenizer używa dopasowania wzorca wyrażeń regularnych do konstruowania unikatowych tokenów.

Opcje

pattern (typ: ciąg) — wzorzec wyrażenia regularnego odpowiadający separatorom tokenów. Wartość domyślna to \W+, która pasuje do znaków innych niż word.

flagi (typ: ciąg) — flagi wyrażeń regularnych. Wartość domyślna to pusty ciąg. Dozwolone wartości: CANON_EQ, CASE_INSENSITIVE, KOMENTARZE, DOTALL, LITERAŁ, MULTILINE, UNICODE_CASE, system UNIX_LINES

group (typ: int) — która grupa ma być wyodrębniana do tokenów. Wartość domyślna to -1 (podział).
standard_v2 StandardTokenizerV2 Podział tekstu zgodnie z regułami segmentacji tekstu Unicode.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna: 255, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone.
uax_url_email UaxUrlEmailTokenizer Tokenizuje adresy URL i wiadomości e-mail jako jeden token.

Opcje

maxTokenLength (typ: int) — maksymalna długość tokenu. Wartość domyślna: 255, maksymalna: 300. Tokeny dłuższe niż maksymalna długość są dzielone.
Odstępu (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Dzieli tekst na białe znaki. Tokeny, które są dłuższe niż 255 znaków, są podzielone.

1 Typy tokenizatora są zawsze prefiksowane w kodzie, #Microsoft.Azure.Search tak aby ClassicTokenizer faktycznie zostały określone jako #Microsoft.Azure.Search.ClassicTokenizer. Usunęliśmy prefiks, aby zmniejszyć szerokość tabeli, ale pamiętaj, aby uwzględnić go w kodzie. Zwróć uwagę, że tokenizer_type jest udostępniana tylko dla tokenizatorów, które można dostosować. Jeśli nie ma żadnych opcji, tak jak w przypadku tokenizatora litery, nie ma skojarzonego typu #Microsoft.Azure.Search.

Filtry tokenów

Filtr tokenu służy do filtrowania lub modyfikowania tokenów generowanych przez tokenizatora. Można na przykład określić filtr małych liter, który konwertuje wszystkie znaki na małe litery. Możesz mieć wiele filtrów tokenów w analizatorze niestandardowym. Filtry tokenów są uruchamiane w kolejności, w której są wyświetlane.

W poniższej tabeli filtry tokenów implementowane przy użyciu platformy Apache Lucene są połączone z dokumentacją interfejsu API Lucene.

token_filter_name token_filter_type 1 Opis i opcje
arabic_normalization (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Filtr tokenu, który stosuje arabski normalizator w celu normalizacji ortografii.
Apostrof (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Usuwa wszystkie znaki po apostrofie (w tym sam apostrof).
asciifolding AsciiFoldingTokenFilter Konwertuje znaki alfabetyczne, liczbowe i symboliczne Unicode, które nie mają pierwszych 127 znaków ASCII ( Basic Latin blok Unicode) na ich odpowiedniki ASCII, jeśli istnieje.

Opcje

preserveOriginal (typ: bool) — jeśli wartość true, oryginalny token jest przechowywany. Wartością domyślną jest false.
cjk_bigram CjkBigramTokenFilter Tworzy bigramy terminów CJK generowanych na podstawie standardtokenizer.

Opcje

ignoreScripts (typ: tablica ciągów) — skrypty do ignorowania. Dozwolone wartości to: han, , katakanahiragana, hangul. Wartość domyślna to pusta lista.

outputUnigrams (typ: bool) — ustaw wartość true, jeśli zawsze chcesz wyświetlić zarówno jednogramy, jak i bigramy. Wartością domyślną jest false.
cjk_width (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje różnice szerokości zestawu CJK. Składa warianty ASCII o pełnej szerokości do równoważnego podstawowego alfabetu łacińskiego i pół szerokości Warianty Katakana w równoważny kana.
Klasyczny (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Usuwa angielskich opętaczy i kropki z akronimów.
common_grams CommonGramTokenFilter Konstruowanie bigramów dla często występujących terminów podczas indeksowania. Pojedyncze terminy są również indeksowane, a bigramy są nakładane.

Opcje

commonWords (typ: tablica ciągów) — zestaw typowych słów. Wartość domyślna to pusta lista. Wymagane.

ignoreCase (typ: wartość logiczna) — jeśli wartość true, dopasowanie jest bez uwzględniania wielkości liter. Wartością domyślną jest false.

queryMode (typ: bool) — generuje bigramy, a następnie usuwa typowe wyrazy i pojedyncze terminy, po których następuje słowo wspólne. Wartością domyślną jest false.
dictionary_decompounder DictionaryDecompounderTokenFilter Rozkłada złożone wyrazy znalezione w wielu językach niemieckich.

Opcje

wordList (typ: tablica ciągów) — lista wyrazów do dopasowania. Wartość domyślna to pusta lista. Wymagane.

minWordSize (wpisz: int) — tylko wyrazy dłuższe niż te zostaną przetworzone. Ustawieniem domyślnym jest 5.

minSubwordSize (typ: int) — tylko podsieci dłuższe niż zostaną wyjadzone. Ustawieniem domyślnym jest 2.

maxSubwordSize (typ: int) — tylko podwords krótsze niż to będzie wyświetlane. Wartość domyślna to 15.

onlyLongestMatch (typ: bool) — dodaj tylko najdłuższy pasujący podword do danych wyjściowych. Wartością domyślną jest false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Generuje n-gramy danego rozmiaru od początku od przodu lub z tyłu tokenu wejściowego.

Opcje

minGram (typ: int) — wartość domyślna: 1, maksymalna: 300.

maxGram (typ: int) — wartość domyślna: 2, maksymalna 300. Musi być większy niż minGram.

side (typ: ciąg) — określa, z której strony danych wejściowych ma zostać wygenerowany n-gram. Dozwolone wartości: front, back
elizja ElisionTokenFilter Usuwa elizji. Na przykład l'avion (płaszczyzna) jest konwertowana na avion (płaszczyznę).

Opcje

articles (typ: tablica ciągów) — zestaw artykułów do usunięcia. Wartość domyślna to pusta lista. Jeśli nie ma ustawionej listy artykułów, domyślnie wszystkie francuskie artykuły zostaną usunięte.
german_normalization (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje niemieckie znaki według heurystyki algorytmu śnieżki German2 .
hindi_normalization (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje tekst w języku hindi, aby usunąć pewne różnice w odmianach pisowni.
indic_normalization IndicNormalizationTokenFilter Normalizuje reprezentację tekstu w języku indyjskim w formacie Unicode.
Zachować KeepTokenFilter Filtr tokenu, który przechowuje tylko tokeny z tekstem zawartym na określonej liście wyrazów.

Opcje

keepWords (typ: tablica ciągów) — lista wyrazów do zachowania. Wartość domyślna to pusta lista. Wymagane.

keepWordsCase (wpisz: bool) — jeśli wartość true, najpierw wszystkie wyrazy są małe litery. Wartością domyślną jest false.
keyword_marker Słowo kluczoweMarkerTokenFilter Oznacza terminy jako słowa kluczowe.

Opcje

keywords (typ: tablica ciągów) — lista wyrazów, które mają być oznaczane jako słowa kluczowe. Wartość domyślna to pusta lista. Wymagane.

ignoreCase (typ: wartość logiczna) — jeśli wartość true, małe litery najpierw wszystkie wyrazy. Wartością domyślną jest false.
keyword_repeat (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Emituje każdy token przychodzący dwa razy jako słowo kluczowe i raz jako nie-słowo kluczowe.
kstem (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Filtr o wysokiej wydajności kstem dla języka angielskiego.
length LengthTokenFilter Usuwa wyrazy, które są za długie lub za krótkie.

Opcje

min (typ: int) — minimalna liczba. Wartość domyślna: 0, maksymalna: 300.

max (typ: int) — maksymalna liczba. Wartość domyślna: 300, maksymalna: 300.
limit Microsoft.Azure.Search.LimitTokenFilter Ogranicza liczbę tokenów podczas indeksowania.

Opcje

maxTokenCount (typ: int) — maksymalna liczba tokenów do utworzenia. Wartość domyślna to 1.

consumeAllTokens (typ: wartość logiczna) — czy wszystkie tokeny z danych wejściowych muszą być używane, nawet jeśli wartość maxTokenCount zostanie osiągnięta. Wartością domyślną jest false.
Małe litery (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje tekst tokenu do małych liter.
nGram_v2 NGramTokenFilterV2 Generuje n-gramy danego rozmiaru.

Opcje

minGram (typ: int) — wartość domyślna: 1, maksymalna: 300.

maxGram (typ: int) — wartość domyślna: 2, maksymalna 300. Musi być większy niż minGram.
pattern_capture PatternCaptureTokenFilter Używa wyrażeń regularnych Java do emitowania wielu tokenów, po jednym dla każdej grupy przechwytywania w co najmniej jednym wzorze.

Opcje

patterns (typ: tablica ciągów) — lista wzorców, które mają być zgodne z każdym tokenem. Wymagane.

preserveOriginal (typ: bool) — ustaw wartość true, aby zwrócić oryginalny token, nawet jeśli jeden z wzorców jest zgodny, wartość domyślna: true
pattern_replace PatternReplaceTokenFilter Filtr tokenu, który stosuje wzorzec do każdego tokenu w strumieniu, zastępując wystąpienia dopasowania określonym ciągiem zastępczym.

Opcje

pattern (typ: ciąg) — wymagane.

replacement (typ: ciąg) — wymagane.
persian_normalization (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Stosuje normalizację dla perskich.
Fonetyczny Telefon ticTokenFilter Tworzenie tokenów dla dopasowań fonetycznych.

Opcje

koder (typ: ciąg) — koder Telefon tic do użycia. Dozwolone wartości to: metaphone, doubleMetaphonecaverphone2caverphone1refinedSoundexsoundexnysiiskoelnerPhonetikcologne, , . beiderMorsehaasePhonetik Wartość domyślna: metaphone. Wartość domyślna to metafon.

Aby uzyskać więcej informacji, zobacz koder .

replace (typ: wartość logiczna) — prawda, jeśli zakodowane tokeny powinny zastąpić oryginalne tokeny, wartość false, jeśli powinny zostać dodane jako synonimy. Wartość domyślna to true.
porter_stem (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Przekształca strumień tokenu zgodnie z algorytmem wynikającym z portera.
reverse (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Odwraca ciąg tokenu.
scandinavian_normalization (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje użycie zamiennych znaków skandynawskich.
scandinavian_folding (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Składa skandynawskie znaki åÅäæÄÆdo a i öÖøØdo o. Dyskryminuje również stosowanie podwójnych ślubów aa, , aeaooe i oo, pozostawiając tylko pierwszy.
Gont ShingleTokenFilter Tworzy kombinacje tokenów jako pojedynczy token.

Opcje

maxShingleSize (typ: int) — wartości domyślne to 2.

minShingleSize (typ: int) — wartości domyślne to 2.

outputUnigrams (typ: bool) — jeśli wartość true, strumień wyjściowy zawiera tokeny wejściowe (unigramy), a także shingles. Wartość domyślna to true.

outputUnigramsIfNoShingles (typ: wartość logiczna) — jeśli wartość true, zastąpi zachowanie outputUnigrams==false dla tych czasów, gdy nie są dostępne żadne shingles. Wartością domyślną jest false.

tokenSeparator (typ: ciąg) — ciąg używany podczas łączenia sąsiednich tokenów w celu utworzenia shingle. Wartość domyślna to pojedyncze puste miejsce .

filterToken (typ: ciąg) — ciąg do wstawienia dla każdej pozycji, dla której nie ma tokenu. Wartość domyślna to _.
Śnieżki SnowballTokenFilter Filtr tokenu Snowball.

Opcje

language (typ: ciąg) — dozwolone wartości obejmują: armenian, basquecatalandanishdutchenglishfinnishfrenchgermangerman2hungarianitaliankplovinsnorwegianporterportugueseromanianrussianspanishswedishturkish
sorani_normalization SoraniNormalizationTokenFilter Normalizuje reprezentację Sorani tekstu w formacie Unicode.

Opcje

Brak.
stemmer StemmerTokenFilter Filtr macierzysty specyficzny dla języka.

Opcje

language (typ: ciąg) — dozwolone wartości obejmują:
- arabic
- armenian
- basque
- brazilian
- bulgarian
- catalan
- czech
- danish
- dutch
- dutchKp
- english
- lightEnglish
- minimalEnglish
- possessiveEnglish
- porter2
- lovins
- finnish
- lightFinnish
- french
- lightFrench
- minimalFrench
- galician
- minimalGalician
- german
- german2
- lightGerman
- minimalGerman
- greek
- hindi
- hungarian
- lightHungarian
- indonesian
- irish
- italian
- lightItalian
- sorani
- latvian
- norwegian
- lightNorwegian
- minimalNorwegian
- lightNynorsk
- minimalNynorsk
- portuguese
- lightPortuguese
- minimalPortuguese
- portugueseRslp
- romanian
- russian
- lightRussian
- spanish
- lightSpanish
- swedish
- lightSwedish
- turkish
stemmer_override StemmerOverrideTokenFilter Wszystkie terminy stemmed słownika są oznaczone jako słowa kluczowe, co zapobiega ściągniętym łańcuchowi. Należy umieścić przed wszelkimi filtrami macierzystymi.

Opcje

rules (typ: tablica ciągów) — reguły stemming w następującym formacie word => stem , na przykład ran => run. Wartość domyślna to pusta lista. Wymagane.
Stopwords StopwordsTokenFilter Usuwa słowa zatrzymania ze strumienia tokenu. Domyślnie filtr używa wstępnie zdefiniowanej listy słów stop dla języka angielskiego.

Opcje

stopwords (typ: tablica ciągów) — lista stopwords. Nie można określić, czy określono stopwordsList.

stopwordsList (typ: ciąg) — wstępnie zdefiniowana lista stopwords. Nie można określić, jeśli stopwords zostanie określony. Dozwolone wartości to:arabic, armenian, basquespanishfrenchfinnishenglishgaliciandutchdanishczechgermancatalanbulgarianbraziliangreekhindinorwegianlatvianpersianitalianportugueseirishromanianrussianindonesianhungarianswedishthaisoraniturkishdomyślnie: . english Nie można określić, jeśli stopwords zostanie określony.

ignoreCase (typ: wartość logiczna) — jeśli wartość true, wszystkie wyrazy są najpierw małe litery. Wartością domyślną jest false.

removeTrailing (wpisz: bool) — jeśli wartość true, zignoruj ostatni termin wyszukiwania, jeśli jest to wyraz zatrzymania. Wartość domyślna to true.
Synonim SynonimTokenFilter Pasuje do synonimów pojedynczych lub wieloznanych w strumieniu tokenu.

Opcje

synonimy (typ: tablica ciągów) — wymagane. Lista synonimów w jednym z następujących dwóch formatów:

-niesamowite, niewiarygodne, wspaniałe => niesamowite - wszystkie terminy po lewej stronie => symbol są zastępowane wszystkimi terminami po prawej stronie.

-niesamowite, niewiarygodne, wspaniałe, niesamowite - rozdzielona przecinkami lista równoważnych słów. Ustaw opcję rozwijania, aby zmienić sposób interpretowania tej listy.

ignoreCase (typ: bool) — wprowadzanie wielkości liter w celu dopasowania. Wartością domyślną jest false.

expand (typ: bool) — jeśli prawda, wszystkie wyrazy na liście synonimów (jeśli => notacja nie jest używana) mapuj na siebie nawzajem.
Poniższa lista: niesamowita, niewiarygodna, wspaniała, niesamowita jest równoważna: niesamowite, niewiarygodne, wspaniałe, niesamowite => niesamowite, niewiarygodne, wspaniałe, niesamowite

- Jeśli fałsz, poniższa lista: niesamowite, niewiarygodne, wspaniałe, niesamowite są równoważne: niesamowite, niewiarygodne, wspaniałe, niesamowite => niesamowite.
Przycinanie (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Przycina wiodące i końcowe odstępy od tokenów.
truncate TruncateTokenFilter Obcina terminy na określoną długość.

Opcje

length (typ: int) — wartość domyślna: 300, maksymalna: 300. Wymagane.
unique UniqueTokenFilter Filtruje tokeny z tym samym tekstem co poprzedni token.

Opcje

onlyOnSamePosition (typ: bool) — w przypadku ustawienia usuń duplikaty tylko w tym samym położeniu. Wartość domyślna to true.
Wielkie (typ ma zastosowanie tylko wtedy, gdy dostępne są opcje) Normalizuje tekst tokenu na wielkie litery.
word_delimiter WordDelimiterTokenFilter Dzieli wyrazy na subwords i wykonuje opcjonalne przekształcenia w grupach podrzędnych.

Opcje

generateWordParts (typ: bool) — powoduje wygenerowanie części wyrazów, na przykład AzureSearch staje się .AzureSearch Wartość domyślna to true.

generateNumberParts (typ: wartość logiczna) — powoduje wygenerowanie podsłowów liczbowych. Wartość domyślna to true.

catenateWords (typ: bool) — powoduje, że maksymalna liczba uruchomień części słów do kategoryzowania, na przykład Azure-Search staje się .AzureSearch Wartością domyślną jest false.

catenateNumbers (typ: bool) — powoduje maksymalne uruchomienia liczby części do kategoryzowania, na przykład 1-2 staje się .12 Wartością domyślną jest false.

catenateAll (typ: bool) — powoduje, że wszystkie części podrzędne mają być podzielone na kategoryzacje, np Azure-Search-1 . AzureSearch1staje się . Wartością domyślną jest false.

splitOnCaseChange (typ: bool) — jeśli wartość true, dzieli wyrazy na caseChange, na przykład AzureSearch staje się .AzureSearch Wartość domyślna to true.

preserveOriginal — powoduje zachowanie oryginalnych wyrazów i dodanie ich do listy podwordów. Wartością domyślną jest false.

splitOnNumerics (typ: wartość logiczna) — jeśli wartość true, podziały na liczby, na przykład Azure1Search stają się .Azure1Search Wartość domyślna to true.

stemEnglishPossessive (typ: bool) — powoduje usunięcie końcowego 's dla każdego podwordu. Wartość domyślna to true.

protectedWords (typ: tablica ciągów) — tokeny chroniące przed ogranicznikami. Wartość domyślna to pusta lista.

1 Typy filtrów tokenów są zawsze prefiksowane w kodzie, #Microsoft.Azure.Search tak aby ArabicNormalizationTokenFilter faktycznie zostały określone jako #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Usunęliśmy prefiks, aby zmniejszyć szerokość tabeli, ale pamiętaj, aby uwzględnić go w kodzie.

Zobacz też