Menambahkan penganalisis kustom ke bidang string dalam indeks Pencarian Azure AI

Penganalisis kustom adalah kombinasi yang ditentukan pengguna dari satu tokenizer, satu atau beberapa filter token, dan satu atau beberapa filter karakter. Penganalisis kustom ditentukan dalam indeks pencarian, lalu dirujuk berdasarkan nama pada definisi bidang yang memerlukan analisis kustom. Penganalisis kustom dipanggil berdasarkan per bidang. Atribut pada bidang akan menentukan apakah atribut tersebut digunakan untuk pengindeksan, kueri, atau keduanya.

Dalam penganalisis kustom, filter karakter menyiapkan teks input sebelum diproses oleh tokenizer (misalnya, menghapus markup). Selanjutnya, tokenizer memecah teks menjadi token. Terakhir, filter token memodifikasi token yang dipancarkan oleh tokenizer. Untuk konsep dan contoh, lihat Penganalisis di Azure AI Search.

Mengapa menggunakan penganalisis kustom?

Penganalisis kustom memberi Anda kontrol atas proses konversi teks menjadi token yang dapat diindeks dan dapat dicari dengan memungkinkan Anda memilih jenis analisis atau pemfilteran mana yang akan dipanggil, dan urutan terjadinya.

Buat dan tetapkan penganalisis kustom jika tidak ada penganalisis default (Standard Lucence), bawaan, atau bahasa sesuai dengan kebutuhan Anda. Anda juga dapat membuat penganalisis kustom jika Anda ingin menggunakan penganalisis bawaan dengan opsi kustom. Misalnya, jika Anda ingin mengubah maxTokenLength di Standar, Anda akan membuat penganalisis kustom, dengan nama yang ditentukan pengguna, untuk mengatur opsi itu.

Situasi ketika penganalisis kustom dapat membantu:

  • Menggunakan filter karakter untuk menghapus markup HTML sebelum input teks ditokenisasi, atau mengganti karakter atau simbol tertentu.

  • Pencarian fonetik. Tambahkan filter fonetik untuk mengaktifkan pencarian berdasarkan bunyi kata, bukan ejaannya.

  • Nonaktifkan analisis leksikal. Gunakan penganalisis Kata Kunci untuk membuat bidang yang dapat dicari yang tidak dianalisis.

  • Pencarian awalan/akhiran cepat. Tambahkan filter token N-gram Azure Stack Edge ke awalan indeks kata untuk memungkinkan pencocokan awalan cepat. Gabungkan dengan filter token Terbalik untuk melakukan pencocokan akhiran.

  • Tokenisasi kustom. Misalnya, gunakan tokenizer Whitespace untuk memecah kalimat menjadi token menggunakan spasi kosong sebagai pembatas

  • Pelipatan ASCII. Tambahkan filter pelipatan ASCII Standar untuk menormalkan diakritik seperti ö atau ê dalam istilah pencarian.

Catatan

Penganalisis kustom tidak diekspos di portal Azure. Satu-satunya cara untuk menambahkan penganalisis kustom adalah melalui kode yang mendefinisikan indeks.

Membuat penganalisis kustom

Untuk membuat penganalisis kustom, tentukan di analyzers bagian indeks pada waktu desain, lalu referensikan pada bidang yang dapat dicari, Edm.String menggunakan analyzer properti, atau indexAnalyzer pasangan dan searchAnalyzer .

Definisi penganalisis mencakup nama, jenis, satu atau beberapa filter karakter, maksimal satu tokenizer, dan satu atau beberapa filter token untuk pemrosesan pasca-tokenisasi. Filter karakter diterapkan sebelum tokenisasi. Filter token dan filter karakter diterapkan dari kiri ke kanan.

  • Nama dalam penganalisis kustom harus unik dan tidak boleh sama dengan penganalisis bawaan, tokenizer, filter token, atau filter karakter. Nama hanya boleh berisi huruf, digit, spasi, garis putus-putus, atau garis bawah, hanya dapat dimulai dan diakhiri dengan karakter alfanumerik, dan dibatasi hingga 128 karakter.

  • Jenis haruslah #Microsoft.Azure.Search.CustomAnalyzer.

  • charFilters dapat berupa satu atau beberapa filter dari Filter Karakter, yang diproses sebelum tokenisasi, dalam urutan yang disediakan. Beberapa filter karakter memiliki opsi, yang dapat diatur dalam bagian charFilters . Filter karakter bersifat opsional.

  • tokenizer tepat satu Tokenizer. Nilai harus diisi. Jika membutuhkan lebih dari satu tokenizer, Anda dapat membuat beberapa penganalisis kustom dan menetapkannya berdasarkan bidang demi bidang dalam skema indeks Anda.

  • tokenFilters dapat berupa satu atau beberapa filter dari Filter Token, diproses setelah tokenisasi, dalam urutan yang disediakan. Untuk filter token yang memiliki opsi, tambahkan tokenFilter bagian untuk menentukan konfigurasi. Filter token bersifat opsional.

Penganalisis tidak boleh membuat token yang lebih panjang dari 300 karakter, atau pengindeksan akan gagal. Untuk memangkas token panjang atau mengecualikannya, gunakan berturut-turut TruncateTokenFilter dan LengthTokenFilter. Lihat Filter token untuk referensi.

"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,
      ...
   }
]

Dalam definisi indeks, Anda dapat menempatkan bagian ini di mana saja dalam isi permintaan buat indeks tetapi biasanya di akhir:

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

Definisi penganalisis adalah bagian dari indeks yang lebih besar. Definisi untuk filter karakter, tokenizer, dan filter token ditambahkan ke indeks hanya jika Anda mengatur opsi kustom. Untuk menggunakan filter atau tokenizer yang ada secara apa adanya, tentukan berdasarkan nama dalam definisi penganalisis. Untuk informasi selengkapnya, lihat Membuat Indeks (REST). Untuk contoh selengkapnya, lihat Menambahkan penganalisis di Azure AI Search.

Menguji penganalisis kustom

Anda dapat menggunakan Test Analyzer (REST) untuk melihat bagaimana penganalisis memecah teks yang diberikan menjadi token.

Permintaan

  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"
  }

Respons

  {
    "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
      }
    ]
  }

Memperbarui penganalisis kustom

Setelah penganalisis, tokenizer, filter token, atau filter karakter ditentukan, itu tidak dapat dimodifikasi. Yang baru dapat ditambahkan ke indeks yang ada hanya jika bendera allowIndexDowntime diatur ke true dalam permintaan pembaruan indeks:

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

Operasi ini membuat indeks Anda offline setidaknya selama beberapa detik, menyebabkan permintaan pengindeksan dan kueri gagal. Performa dan ketersediaan penulisan indeks dapat terganggu selama beberapa menit setelah indeks diperbarui, atau lebih lama untuk indeks yang sangat besar, tetapi efek ini bersifat sementara dan akhirnya diselesaikan sendiri.

Penganalisis bawaan

Jika Anda ingin menggunakan penganalisis bawaan dengan opsi kustom, membuat penganalisis kustom adalah mekanisme yang Anda tentukan opsinya. Sebaliknya, untuk menggunakan penganalisis bawaan apa adanya, Anda hanya perlu mereferensikannya dengan nama dalam definisi bidang.

analyzer_name analyzer_type 1 Deskripsi dan Opsi
Kata Kunci (jenis hanya berlaku ketika opsi tersedia) Perlakukan seluruh konten bidang sebagai token tunggal. Hal ini berguna untuk data seperti kode pos, ID, dan beberapa nama produk.
pola PatternAnalyzer Secara fleksibel memisahkan teks menjadi istilah melalui pola ekspresi reguler.

Opsi

huruf kecil (jenis: bool) - Menentukan apakah istilah dalam huruf kecil. Defaultnya adalah true.

pola (jenis: string) - Pola ekspresi reguler untuk mencocokkan pemisah token. Defaultnya adalah \W+, yang cocok dengan karakter non-kata.

bendera (jenis: string) - Bendera ekspresi reguler. Defaultnya adalah string kosong. Nilai yang diizinkan: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

stopwords (jenis: larik string) - Daftar kata umum. Defaultnya adalah daftar kosong.
sederhana (jenis hanya berlaku ketika opsi tersedia) Membagi teks pada non-huruf dan mengonversinya menjadi huruf kecil.
standar
(Juga disebut sebagai standard.lucene)
StandardAnalyzer Penganalisis Lucene standar, terdiri dari tokenizer standar, filter huruf kecil, dan filter stop.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum. Defaultnya adalah 255. Token yang lebih panjang dari panjang maksimum dipecah. Panjang token maksimum yang dapat digunakan adalah 300 karakter.

stopwords (jenis: larik string) - Daftar kata umum. Defaultnya adalah daftar kosong.
standardasciifolding.lucene (jenis hanya berlaku ketika opsi tersedia) Penganalisis standar dengan filter pelipatan Ascii.
stop StopAnalyzer Membagi teks pada non-huruf, menerapkan filter token huruf kecil dan kata umum.

Opsi

stopwords (jenis: larik string) - Daftar kata umum. Defaultnya adalah daftar yang sudah ditentukan untuk bahasa Inggris.
spasi kosong (jenis hanya berlaku ketika opsi tersedia) Penganalisis yang menggunakan tokenizer spasi kosong. Token yang lebih panjang dari 255 karakter dipecah.

1 Jenis Penganalisis selalu diawali dalam kode dengan #Microsoft.Azure.Search kode yang PatternAnalyzer sebenarnya akan ditentukan sebagai #Microsoft.Azure.Search.PatternAnalyzer. Kami menghapus awalan untuk mempersingkat, tetapi awalan diperlukan dalam kode Anda.

Jenis analyzer_type hanya disediakan untuk penganalisis yang dapat disesuaikan. Jika tidak ada opsi, seperti halnya dengan penganalisis kata kunci, tidak ada jenis #Microsoft.Azure.Search terkait.

Filter karakter

Filter karakter menambahkan pemrosesan sebelum untai (karakter) mencapai tokenizer.

Azure AI Search mendukung filter karakter dalam daftar berikut. Informasi lebih lanjut dapat ditemukan dalam referensi API Lucene.

char_filter_name char_filter_type 1 Deskripsi dan Opsi
html_strip (jenis hanya berlaku ketika opsi tersedia) Filter karakter yang mencoba menghapus konstruksi HTML.
mapping MappingCharFilter Filter karakter yang menerapkan pemetaan yang ditentukan dengan opsi pemetaan. Pencocokan bersifat rakus (pola terpanjang yang cocok di titik tertentu menang). Penggantian diperbolehkan menjadi string kosong.

Opsi

pemetaan (jenis: array string) - Daftar pemetaan format berikut: a=>b (semua kemunculan karakter a diganti dengan karakter b). Harus diisi.
pattern_replace PatternReplaceCharFilter Filter karakter yang menggantikan karakter dalam string input. Menggunakan ekspresi reguler untuk mengidentifikasi urutan karakter untuk dipertahankan dan pola pengganti untuk mengidentifikasi karakter untuk diganti. Misalnya, teks input = aa bb aa bb, pola=(aa)\\\s+(bb) replacement=$1#$2, result = aa#bb aa#bb.

Opsi

pola (jenis: string) - Wajib diisi.

pengganti (jenis: string) - Wajib diisi.

1 Jenis Filter Karakter selalu diawali dalam kode dengan #Microsoft.Azure.Search yang MappingCharFilter sebenarnya akan ditentukan sebagai #Microsoft.Azure.Search.MappingCharFilter. Kami menghapus awalan untuk mengurangi lebar tabel, tetapi harap diingat untuk memasukkannya ke dalam kode Anda. Perhatikan bahwa char_filter_type hanya disediakan untuk filter yang dapat disesuaikan. Jika tidak ada opsi, seperti halnya dengan html_strip, tidak ada jenis #Microsoft.Azure.Search terkait.

Tokenizer

Tokenizer membagi teks berkelanjutan menjadi urutan token, seperti memecah kalimat menjadi kata-kata, atau kata ke dalam bentuk akar.

Azure AI Search mendukung tokenizer dalam daftar berikut. Informasi lebih lanjut dapat ditemukan dalam referensi API Lucene.

tokenizer_name tokenizer_type 1 Deskripsi dan Opsi
Klasik ClassicTokenizer Tokenizer berbasis tata bahasa yang cocok untuk memproses sebagian besar dokumen berbahasa Eropa.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum. Default: 255, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah.
edgeNGram EdgeNGramTokenizer Tokenisasi input dari tepi ke dalam n-gram ukuran yang diberikan.

Opsi

minGram (jenis: int) - Default: 1, maksimum: 300.

maxGram (jenis: int) - Default: 2, maksimum: 300. Harus lebih besar dari minGram.

tokenChars (jenis: larik string) - Kelas karakter untuk disimpan dalam token. Nilai yang diizinkan:
letter, , digitwhitespace, punctuation, . symbol Default ke larik kosong - menyimpan semua karakter.
keyword_v2 KeywordTokenizerV2 Mengirimkan seluruh input sebagai token tunggal.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum. Default: 256, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah.
huruf (jenis hanya berlaku ketika opsi tersedia) Membagi teks pada non-huruf. Token yang lebih panjang dari 255 karakter dipecah.
lowercase (jenis hanya berlaku ketika opsi tersedia) Membagi teks pada non-huruf dan mengonversinya menjadi huruf kecil. Token yang lebih panjang dari 255 karakter dipecah.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Membagi teks menggunakan aturan spesifik bahasa.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum, default: 255, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah. Token yang lebih panjang dari 300 karakter pertama kali dibagi menjadi token dengan panjang 300 dan kemudian masing-masing token tersebut dibagi berdasarkan set maxTokenLength.

isSearchTokenizer (jenis: bool) - Atur ke true jika digunakan sebagai tokenizer pencarian, atur ke false jika digunakan sebagai tokenizer pengindeksan.

bahasa (jenis: string) - Bahasa yang akan digunakan, default english. Nilai yang diizinkan meliputi:
bangla, , bulgarian, catalan, chineseTraditionalchineseSimplified, croatianczech, danish, dutch, , englishgujaratigreekgermanfrench, , hindi, icelandic, , romanianpunjabiportugueseBrazilianrussianportuguesepolishnorwegianBokmaalserbianCyrillicmarathimalayalamserbianLatintamilswedishteluguspanishthaiukrainianitaliankannadaurdujapanesekoreanmalayslovenianindonesianvietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Membagi teks menggunakan aturan khusus bahasa dan mengurangi kata-kata ke formulir dasarnya. Tokenizer ini melakukan lemmatisasi.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum, default: 255, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah. Token yang lebih panjang dari 300 karakter pertama kali dibagi menjadi token dengan panjang 300 dan kemudian masing-masing token tersebut dibagi berdasarkan set maxTokenLength.

isSearchTokenizer (jenis: bool) - Atur ke true jika digunakan sebagai tokenizer pencarian, atur ke false jika digunakan sebagai tokenizer pengindeksan.

bahasa (jenis: string) - Bahasa yang akan digunakan, default english. Nilai yang diizinkan meliputi:
arabic, , bangla, bulgarian, croatiancatalan, czechdanish, dutch, english, estonian, frenchfinnishgujaratigreekgermanhebrew, , ukrainianhindihungarianicelandicindonesianitaliankannadalatvianlithuanianmalaymalayalammarathinorwegianBokmaalpolishportugueseportugueseBrazilianpunjabiromanianrussianserbianCyrillicserbianLatinslovakslovenianspanishswedishtamilteluguturkishurdu
nGram NGramTokenizer Tokenisasi input menjadi n-gram dari ukuran yang diberikan.

Opsi

minGram (jenis: int) - Default: 1, maksimum: 300.

maxGram (jenis: int) - Default: 2, maksimum: 300. Harus lebih besar dari minGram.

tokenChars (jenis: larik string) - Kelas karakter untuk disimpan dalam token. Nilai yang diizinkan: letter, , digitwhitespace, punctuation, symbol. Default ke larik kosong - menyimpan semua karakter.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizer untuk hierarki seperti jalur. Opsi

pembatas (jenis: string) - Default: '/.

pengganti (jenis: string) - Jika diatur, mengganti karakter pembatas. Defaultnya sama dengan nilai pembatas.

maxTokenLength (jenis: int) - Panjang token maksimum. Default: 300, maksimum: 300. Jalur yang lebih panjang dari maxTokenLength diabaikan.

terbalik (jenis: bool) - Jika true, membuat token dengan urutan terbalik. Default: false.

lewati (jenis: bool) - Token awal untuk dilewati. Defaultnya adalah 0.
pola PatternTokenizer Tokenizer ini menggunakan pencocokan pola regex untuk membuat token yang berbeda.

Opsi

pola (jenis: string) - Pola ekspresi reguler untuk mencocokkan pemisah token. Defaultnya adalah \W+, yang cocok dengan karakter non-kata.

bendera (jenis: string) - Bendera ekspresi reguler. Defaultnya adalah string kosong. Nilai yang diizinkan: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

grup (jenis: int) - Grup mana yang akan diekstrak menjadi token. Defaultnya adalah -1 (pecah).
standard_v2 StandardTokenizerV2 Memecah teks mengikuti aturan Segmentasi Teks Unicode.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum. Default: 255, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah.
uax_url_email UaxUrlEmailTokenizer Tokenisasi url dan email sebagai satu token.

Opsi

maxTokenLength (jenis: int) - Panjang token maksimum. Default: 255, maksimum: 300. Token yang lebih panjang dari panjang maksimum dipecah.
spasi kosong (jenis hanya berlaku ketika opsi tersedia) Membagi teks di spasi kosong. Token yang lebih panjang dari 255 karakter dipecah.

1 Jenis Tokenizer selalu diawali dalam kode dengan #Microsoft.Azure.Search yang ClassicTokenizer sebenarnya akan ditentukan sebagai #Microsoft.Azure.Search.ClassicTokenizer. Kami menghapus awalan untuk mengurangi lebar tabel, tetapi harap diingat untuk memasukkannya ke dalam kode Anda. Perhatikan bahwa tokenizer_type hanya disediakan untuk tokenizer yang dapat disesuaikan. Jika tidak ada opsi, seperti halnya dengan tokenizer huruf, tidak ada jenis #Microsoft.Azure.Search terkait.

Filter token

Filter token digunakan untuk memfilter atau memodifikasi token yang dihasilkan oleh tokenizer. Misalnya, Anda dapat menetapkan filter huruf kecil yang mengonversi semua karakter menjadi huruf kecil. Anda dapat memiliki beberapa filter token di penganalisis kustom. Filter token berjalan dalam urutan di mana filter tersebut tercantum.

Dalam tabel di bawah ini, filter token yang diterapkan menggunakan Apache Lucene ditautkan ke dokumentasi Lucene API.

token_filter_name token_filter_type 1 Deskripsi dan Opsi
arabic_normalization (jenis hanya berlaku ketika opsi tersedia) Filter token yang menerapkan normalizer Arab untuk menormalkan ortografi.
apostrof (jenis hanya berlaku ketika opsi tersedia) Menghapus semua karakter setelah apostrof (termasuk apostrof itu sendiri).
asciifolding AsciiFoldingTokenFilter Mengonversi karakter Unicode alfabet, numerik, dan simbolis yang tidak berada dalam 127 karakter ASCII pertama ( Basic Latin blok Unicode) menjadi setara ASCII mereka, jika ada.

Opsi

preserveOriginal (jenis: bool) - Jika true, token asli disimpan. Defaultnya adalah false.
cjk_bigram CjkBigramTokenFilter Membentuk bigram istilah CJK yang dihasilkan dari StandardTokenizer.

Opsi

ignoreScripts (jenis: larik string) - Skrip untuk diabaikan. Nilai yang diizinkan meliputi: han, hiragana, katakana, hangul. Defaultnya adalah daftar kosong.

outputUnigram (jenis: bool) - Atur ke true jika Anda selalu ingin mengeluarkan unigram dan bigram. Defaultnya adalah false.
cjk_width (jenis hanya berlaku ketika opsi tersedia) Menormalkan perbedaan lebar CJK. Melipat varian ASCII lebar penuh menjadi varian latin dasar dan Katakana setengah lebar menjadi kana yang setara.
Klasik (jenis hanya berlaku ketika opsi tersedia) Menghapus kepunyaan Bahasa Inggris, dan titik dari singkatan.
common_grams CommonGramTokenFilter Membuat bigram untuk istilah yang sering muncul saat mengindeks. Istilah tunggal juga masih diindeks, dengan bigram berlapis.

Opsi

commonWords (jenis: larik string) - Sekumpulan kata umum. Defaultnya adalah daftar kosong. Harus diisi.

ignoreCase (jenis: bool) - Jika true, pencocokan tidak peka huruf besar/kecil. Defaultnya adalah false.

queryMode (tipe: bool) - Menghasilkan bigram kemudian menghapus kata-kata umum dan istilah tunggal diikuti dengan kata umum. Defaultnya adalah false.
dictionary_decompounder DictionaryDecompounderTokenFilter Menguraikan kata majemuk yang ditemukan dalam banyak bahasa Jermanik.

Opsi

wordList (jenis: larik string) - Daftar kata untuk dicocokkan. Defaultnya adalah daftar kosong. Harus diisi.

minWordSize (jenis: int) - Hanya kata yang lebih panjang dari ini yang akan diproses. Bawaan adalah 5.

minSubwordSize (jenis: int) - Hanya subkata yang lebih panjang dari ini yang akan dihasilkan. Defaultnya adalah 2.

maxSubwordSize (jenis: int) - Hanya subkata yang lebih pendek dari ini yang akan dihasilkan. Defaultnya adalah 15.

onlyLongestMatch (jenis: bool) - Tambahkan hanya subkata paling panjang yang cocok ke output. Defaultnya adalah false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Menghasilkan n-gram dari ukuran yang diberikan mulai dari depan atau belakang token input.

Opsi

minGram (jenis: int) - Default: 1, maksimum: 300.

maxGram (jenis: int) - Default: 2, maksimum 300. Harus lebih besar dari minGram.

sisi (tipe: string) - Menentukan sisi mana dari input n-gram yang harus dihasilkan. Nilai yang diizinkan: front, back
elision ElisionTokenFilter Menghilangkan elision. Misalnya, l'avion (bidang) dikonversi ke avion (bidang).

Opsi

artikel (jenis: larik string) - Sekumpulan artikel untuk dihapus. Defaultnya adalah daftar kosong. Jika tidak ada daftar artikel yang ditetapkan, secara default semua artikel Prancis akan dihapus.
german_normalization (jenis hanya berlaku ketika opsi tersedia) Menormalkan karakter Jerman sesuai dengan heuristik algoritma bola salju German2.
hindi_normalization (jenis hanya berlaku ketika opsi tersedia) Menormalkan teks dalam bahasa Hindi untuk menghapus beberapa perbedaan dalam variasi ejaan.
indic_normalization IndicNormalizationTokenFilter Menormalkan representasi teks Unicode dalam bahasa India.
keep KeepTokenFilter Filter token yang hanya menyimpan token dengan teks yang terdapat dalam daftar kata yang ditentukan.

Opsi

keepWords (jenis: larik string) - Daftar kata yang harus disimpan. Defaultnya adalah daftar kosong. Harus diisi.

keepWordsCase (jenis: bool) - Jika true, membuat semua kata huruf kecil terlebih dahulu. Defaultnya adalah false.
keyword_marker KeywordMarkerTokenFilter Menandai istilah sebagai kata kunci.

Opsi

kata kunci (jenis: larik string) - Daftar kata untuk di ditandai sebagai kata kunci. Defaultnya adalah daftar kosong. Harus diisi.

ignoreCase (jenis: bool) - Jika true, membuat semua kata huruf kecil terlebih dahulu. Defaultnya adalah false.
keyword_repeat (jenis hanya berlaku ketika opsi tersedia) Mengirimkan setiap token masuk dua kali, sekali sebagai kata kunci dan sekali sebagai non-kata kunci.
kstem (jenis hanya berlaku ketika opsi tersedia) Filter berkinerja kstem tinggi untuk bahasa Inggris.
length LengthTokenFilter Menghapus kata-kata yang terlalu panjang atau terlalu pendek.

Opsi

min (jenis: int) - Angka minimum. Default: 0, maksimum: 300.

max (jenis: int) - Angka maksimum. Default: 300, maksimum: 300.
batas Microsoft.Azure.Search.LimitTokenFilter Membatasi jumlah token saat mengindeks.

Opsi

maxTokenCount (jenis: int) - Jumlah maksimal token untuk diproduksi. Defaultnya adalah 1.

consumeAllTokens (jenis: bool) - Apakah semua token dari input harus dikonsumsi bahkan jika maxTokenCount tercapai. Defaultnya adalah false.
lowercase (jenis hanya berlaku ketika opsi tersedia) Menormalkan teks token ke huruf kecil.
nGram_v2 NGramTokenFilterV2 Menghasilkan n-gram dengan ukuran yang diberikan.

Opsi

minGram (jenis: int) - Default: 1, maksimum: 300.

maxGram (jenis: int) - Default: 2, maksimum 300. Harus lebih besar dari minGram.
pattern_capture PatternCaptureTokenFilter Gunakan Java regex untuk mengirimkan token, satu untuk setiap grup tangkapan dalam satu atau beberapa pola.

Opsi

pola (jenis: larik string) - Daftar pola untuk dicocokkan dengan setiap token. Harus diisi.

preserveOriginal (jenis: bool) - Atur ke true untuk mengembalikan token asli meskipun jika salah satu pola cocok, default: true
pattern_replace PatternReplaceTokenFilter Filter token yang menerapkan pola ke setiap token di stream, mengganti kemunculan yang cocok dengan string pengganti yang ditentukan.

Opsi

pola (jenis: string) - Wajib diisi.

pengganti (jenis: string) - Wajib diisi.
persian_normalization (jenis hanya berlaku ketika opsi tersedia) Menerapkan normalisasi untuk bahasa Persia.
fonetik PhoneticTokenFilter Membuat token untuk kecocokan fonetik.

Opsi

encoder (jenis: string) - Encoder fonetik untuk digunakan. Nilai yang diizinkan meliputi: metaphone, , soundexdoubleMetaphone, refinedSoundex, caverphone1, caverphone2, cologne, nysiis, koelnerPhonetik, . beiderMorsehaasePhonetik Default: metaphone. Defaultnya adalah metaphone.

Lihat encoder untuk informasi selengkapnya.

ganti (jenis: bool) - True jika token yang dikodekan harus mengganti token asli, false jika harus ditambahkan sebagai sinonim. Defaultnya adalah true.
porter_stem (jenis hanya berlaku ketika opsi tersedia) Mengubah stream token sesuai Algoritma stemming porter.
reverse (jenis hanya berlaku ketika opsi tersedia) Membalik string token.
scandinavian_normalization (jenis hanya berlaku ketika opsi tersedia) Menormalkan penggunaan karakter Skandinavia yang dapat dipertukarkan.
scandinavian_folding (jenis hanya berlaku ketika opsi tersedia) Melipat karakter åÅäæÄÆSkandinavia ke dalam a dan öÖøØke dalam o. Ini juga mendiskriminasi penggunaan vokal aaganda , , ae, aooe dan oo, hanya meninggalkan yang pertama.
shingle ShingleTokenFilter Membuat kombinasi token sebagai token tunggal.

Opsi

maxShingleSize (jenis: int) - Default ke 2.

minShingleSize (jenis: int) - Default ke 2.

outputUnigram (jenis: bool) - jika true, stream output berisi token input (unigram) serta shingle. Defaultnya adalah true.

outputUnigramsIfNoShingles (tipe: bool) - Jika true, menimpa perilaku outputUnigrams==false untuk saat-saat ketika tidak ada shingle yang tersedia. Defaultnya adalah false.

tokenSeparator (jenis: string) - String yang digunakan saat menggabungkan token yang berdampingan untuk membentuk shingle. Defaultnya adalah satu ruang kosong .

filterToken (jenis: string) - String yang akan dimasukkan untuk setiap posisi yang tidak ada token. Default adalah _.
snowball SnowballTokenFilter Filter Token Snowball.

Opsi

bahasa (jenis: string) - Nilai yang diizinkan meliputi: armenian, , , catalanbasque, danish, dutch, english, frenchfinnish, german2hungariangermankpitalianlovins, norwegian, porter, portuguese, , romanian, russian, , spanishswedishturkish
sorani_normalization SoraniNormalizationTokenFilter Menormalkan representasi Sorani Teks Unicode.

Opsi

Tidak ada.
stemmer StemmerTokenFilter Filter stemming spesifik bahasa.

Opsi

bahasa (jenis: string) - Nilai yang diizinkan meliputi:
- 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 Setiap istilah kamus-Stemmed ditandai sebagai kata kunci, yang mencegah stemming rantai. Harus ditempatkan sebelum filter stemming.

Opsi

aturan (jenis: array string) - Aturan stemming dalam format word => stem berikut misalnya ran => run. Defaultnya adalah daftar kosong. Harus diisi.
stopwords StopwordsTokenFilter Menghapus kata-kata umum dari stream token. Secara default, filter menggunakan daftar kata umum yang sudah ditentukan untuk bahasa Inggris.

Opsi

stopwords (jenis: larik string) - Daftar kata umum. Tidak dapat ditentukan jika stopwordsList ditentukan.

stopwordsList (jenis: string) - Daftar kata umum yang telah ditentukan. Tidak dapat ditentukan jika stopwords ditentukan. Nilai yang diizinkan meliputi:arabic, armenian, basque, brazilian, bulgarian, catalan, danishczech, dutchenglish, , finnish, french, galiciangreekhindigerman, hungarian, latviannorwegianitalianpersianirishportuguesespanishrussianromanianindonesianswedishthaisorani, turkishdefault: . english Tidak dapat ditentukan jika stopwords ditentukan.

ignoreCase (jenis: bool) - Jika true, semua kata dijadikan huruf kecil terlebih dahulu. Defaultnya adalah false.

removeTrailing (tipe: bool) - Jika true, abaikan istilah pencarian terakhir jika merupakan kata umum. Defaultnya adalah true.
synonym SynonymTokenFilter Mencocokkan sinonim tunggal atau multi kata dalam stream token.

Opsi

synonyms (jenis: larik string) - Wajib diisi. Daftar sinonim dalam salah satu dari dua format berikut:

-incredible, unbelievable, fabulous => amazing - semua istilah di sisi kiri => simbol diganti dengan semua istilah di sisi kanannya.

-incredible, unbelievable, fabulous, amazing - Daftar kata yang setara, dipisahkan oleh koma. Atur perluas opsi untuk mengubah cara daftar ini ditafsirkan.

ignoreCase (jenis: bool) - Input pelipatan huruf besar/kecil untuk pencocokan. Defaultnya adalah false.

perluas (jenis: bool) - Jika true, semua kata dalam daftar sinonim (jika => notasi tidak digunakan) dipetakan satu sama lain.
Daftar berikut: luar biasa, luar biasa, luar biasa, luar biasa, luar biasa setara dengan: luar biasa, luar biasa, luar biasa, menakjubkan => luar biasa, luar biasa, luar biasa, luar biasa, luar biasa, luar

- Jika false, daftar berikut: luar biasa, luar biasa, luar biasa, luar biasa setara dengan: luar biasa, luar biasa, luar biasa, menakjubkan => luar biasa.
trim (jenis hanya berlaku ketika opsi tersedia) Menghapus spasi kosong depan dan belakang dari token.
Memotong TruncateTokenFilter Memotong istilah menjadi panjang tertentu.

Opsi

length (jenis: int) - Default: 300, maksimum: 300. Harus diisi.
unique UniqueTokenFilter Memfilter token dengan teks yang sama dengan token sebelumnya.

Opsi

onlyOnSamePosition (jenis: bool) - Jika diatur, menghapus duplikat hanya di posisi yang sama. Defaultnya adalah true.
huruf besar (jenis hanya berlaku ketika opsi tersedia) Menormalkan teks token ke huruf besar.
word_delimiter WordDelimiterTokenFilter Membagi kata menjadi subkata dan melakukan transformasi opsional pada grup subkata.

Opsi

generateWordParts (jenis: bool) - Menyebabkan bagian kata dihasilkan, misalnya AzureSearch menjadi AzureSearch. Defaultnya adalah true.

generateNumberParts (tipe: bool) - Menyebabkan subwords angka dihasilkan. Defaultnya adalah true.

catenateWords (jenis: bool) - Menyebabkan eksekusi maksimum bagian kata di catenated, misalnya Azure-Search menjadi AzureSearch. Defaultnya adalah false.

catenateNumbers (jenis: bool) - Menyebabkan eksekusi maksimum bagian angka di catenated, misalnya 1-2 menjadi 12. Defaultnya adalah false.

catenateAll (jenis: bool) - Menyebabkan semua bagian subkata dihiasi, misalnya Azure-Search-1 menjadi AzureSearch1. Defaultnya adalah false.

splitOnCaseChange (jenis: bool) - Jika benar, memisahkan kata-kata pada caseChange, misalnya AzureSearch menjadi AzureSearch. Defaultnya adalah true.

preserveOriginal - Menyebabkan kata-kata asli dipertahankan dan ditambahkan ke daftar subkata. Defaultnya adalah false.

splitOnNumerics (jenis: bool) - Jika true, dibagi pada angka, misalnya Azure1Search menjadi Azure1Search. Defaultnya adalah true.

stemEnglishPossessive (jenis: bool) - Penyebab berikutnya 's dihapus untuk setiap subword. Defaultnya adalah true.

protectedWords (jenis: larik string) - Token untuk melindungi agar tidak dibatasi. Defaultnya adalah daftar kosong.

1 Jenis Filter Token selalu diawali dalam kode dengan #Microsoft.Azure.Search kode yang ArabicNormalizationTokenFilter sebenarnya akan ditentukan sebagai #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Kami menghapus awalan untuk mengurangi lebar tabel, tetapi harap diingat untuk memasukkannya ke dalam kode Anda.

Baca juga