Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penganalisis kustom adalah komponen analisis leksikal atas konten teks biasa. Ini 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 untuk setiap bidang. Atribut pada bidang 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 dan Tutorial: Membuat penganalisis kustom untuk nomor telepon.
Mengapa menggunakan penganalisis kustom?
Anda harus mempertimbangkan penganalisis kustom dalam alur kerja pencarian klasik yang tidak menyertakan model bahasa besar dan kemampuannya untuk menangani anomali konten.
Dalam pencarian kelas, penganalisis kustom memberi Anda kontrol atas proses konversi teks biasa 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 (Standar Lucene), bawaan, atau bahasa yang cukup untuk kebutuhan Anda. Anda juga dapat membuat penganalisis kustom jika Anda ingin menggunakan penganalisis bawaan dengan opsi kustom. Misalnya, jika Anda ingin mengubah maxTokenLength pada Lucene Standar, Anda akan membuat penganalisis kustom, dengan nama yang ditentukan pengguna, untuk mengatur opsi tersebut.
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 Edge N-gram untuk mengindeks awalan kata guna mempercepat pencocokan awalan. Gabungkan dengan filter token pembalik untuk melakukan pencocokan awalan.
Tokenisasi kustom. Misalnya, gunakan tokenizer Whitespace untuk memecah kalimat menjadi token menggunakan spasi kosong sebagai pembatas
Penggabungan 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 membuat skema indeks.
Membuat penganalisis kustom
Untuk membuat penganalisis kustom, tentukan pada bagian indeks di analyzers waktu desain, lalu referensikan pada bidang yang dapat dicari, menggunakan properti analyzer, atau pasangan indexAnalyzer 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 terdiri dari huruf, digit, spasi, tanda hubung, atau garis bawah. Nama harus dimulai dan diakhir dengan karakter teks biasa. Panjang nama harus di bawah 128 karakter.
Jenis haruslah #Microsoft.Azure.Search.CustomAnalyzer.
charFiltersdapat 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 bagiancharFilters. Filter karakter bersifat opsional.tokenizerhanya 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.tokenFiltersdapat berupa satu atau beberapa filter dari Filter Token, diproses setelah tokenisasi, dalam urutan yang disediakan. Untuk filter token yang memiliki opsi, tambahkantokenFilterbagian 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 sudah ada tanpa perubahan, tentukan namanya dalam definisi analisis. 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_type1 | 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 | Penganalisis Pola | Secara fleksibel memisahkan teks menjadi istilah melalui pola ekspresi reguler. Opsi lowercase (jenis: bool) - Menentukan apakah istilah diubah menjadi huruf kecil. Defaultnya adalah true. pola (jenis: string) - Pola ekspresi reguler untuk mengidentifikasi pemisah token. Defaultnya adalah \W+, yang cocok dengan karakter non-kata. flag (jenis: string) - Flag 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 stopwords. Defaultnya adalah daftar kosong. |
| sederhana | (jenis hanya berlaku ketika opsi tersedia) | Membagi teks di antara karakter non-huruf dan mengubah semuanya 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 stopwords. Defaultnya adalah daftar kosong. |
| standardasciifolding.lucene | (jenis hanya berlaku ketika opsi tersedia) | Penganalisis standar dengan filter pelipatan Ascii. |
| berhenti | StopAnalyzer | Memisahkan teks pada karakter non-abjad, menerapkan filter token huruf kecil dan stopword. Opsi stopwords (jenis: larik string) - Daftar stopwords. 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 dengan #Microsoft.Azure.Search sehingga PatternAnalyzer 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 string 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_type1 | Deskripsi dan Opsi |
|---|---|---|
| html_strip | (jenis hanya berlaku ketika opsi tersedia) | Filter karakter yang mencoba menghapus konstruksi HTML. |
| Pemetaan | PemetaanFilter Karakter | Filter karakter yang menerapkan pemetaan yang sudah ditentukan dengan opsi pemetaan. Pencocokan bersifat rakus (pola terpanjang yang cocok di titik tertentu menang). Penggantian diperbolehkan menggunakan 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) penggantian = $1#$2, hasil = 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 ingatlah untuk menyertakannya 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.
Tokenizers
Tokenizer membagi teks kontinu menjadi urutan token, seperti memecah kalimat menjadi kata-kata, atau kata menjadi bentuk dasarnya.
Azure AI Search mendukung tokenizer dalam daftar berikut. Informasi lebih lanjut dapat ditemukan dalam referensi API Lucene.
| tokenizer_name | tokenizer_type1 | Deskripsi dan Opsi |
|---|---|---|
| Klasik | Tokenizer Klasik | 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 tertentu. 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, digit, whitespace, punctuation, symbol. Secara default ke array kosong - menjaga semua karakter. |
| keyword_v2 | PemenggalKataKunciV2 | 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. |
| surat | (jenis hanya berlaku ketika opsi tersedia) | Membagi teks berdasarkan karakter non-huruf. Token yang lebih panjang dari 255 karakter dipecah. |
| Huruf kecil | (jenis hanya berlaku ketika opsi tersedia) | Membagi teks di antara karakter non-huruf dan mengubah semuanya 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, 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 | Membagi teks menggunakan aturan khusus bahasa dan mengurangi kata-kata ke bentuk 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, 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 | Tokenisasi input ke dalam 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. Bervalu default sebagai array kosong - mempertahankan semua karakter. |
| path_hierarchy_v2 | PathHierarchyTokenizerV2 | Tokenizer untuk hierarki berupa jalur.
Opsi pembatas (jenis: string) - Bawaan: '/. pengganti (jenis: string) - Jika diatur, karakter ini mengganti karakter pembatas. Nilai default sama dengan nilai pembatas. maxTokenLength (jenis: int) - Panjang token maksimum. Default: 300, maksimum: 300. Jalur yang lebih panjang dari maxTokenLength diabaikan. terbalik (tipe: bool) - Jika "true", menghasilkan token dengan urutan terbalik. Nilai awal: 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 tanda. Defaultnya adalah \W+, yang cocok dengan karakter non-kata. flag (jenis: string) - Flag 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 ingatlah untuk menyertakannya dalam kode Anda. Perhatikan bahwa tokenizer_type hanya disediakan untuk tokenizer yang dapat disesuaikan. Jika tidak ada opsi, seperti halnya dengan tokenizer karakter, tidak ada tipe terkait #Microsoft.Azure.Search.
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 dijalankan dalam urutan yang dicantumkan.
Dalam tabel berikut, filter token yang diimplementasikan menggunakan Apache Lucene ditautkan ke dokumentasi LUCENE API.
| token_filter_name | token_filter_type1 | Deskripsi dan Opsi |
|---|---|---|
| normalisasi_bahasa_arab | (jenis hanya berlaku ketika opsi tersedia) | Filter token yang menerapkan normalisasi bahasa Arab untuk menormalkan ortografi. |
| apostrof | (jenis hanya berlaku ketika opsi tersedia) | Menghapus semua karakter setelah sebuah 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. Menggabungkan varian ASCII lebar penuh ke dalam varian Latin dasar dan Katakana lebar setengah ke dalam kana yang setara. |
| Klasik | (jenis hanya berlaku ketika opsi tersedia) | Menghapus kepemilikan dalam Bahasa Inggris dan menghilangkan 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 benar, pencocokan tidak mempertimbangkan 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. Nilai default 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 dengan memulai 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 masukan yang digunakan untuk menghasilkan n-gram. Nilai yang diizinkan: front, back |
| elisi | ElisionTokenFilter | Menghilangkan elision. Misalnya, l'avion (pesawat) dikonversi ke avion (pesawat).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. |
| mempertahankan | KeepTokenFilter | Filter token yang hanya menyimpan token dengan teks yang terdapat dalam daftar kata yang ditentukan. Opsi keepWords (jenis: array string) - Daftar kata untuk disimpan. Defaultnya adalah daftar kosong. Harus diisi. keepWordsCase (jenis: bool) - Jika true, menjadikan semua kata dalam huruf kecil terlebih dahulu. Defaultnya adalah false. |
| keyword_marker | Kata KunciMarkerTokenFilter | 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, mengubah semua kata menjadi 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. |
| panjangnya | Filter Token Panjang | 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. |
| Huruf kecil | (jenis hanya berlaku ketika opsi tersedia) | Menormalkan teks token ke huruf kecil. |
| nGram_v2 | NGramTokenFilterV2 | Menghasilkan n-gram dari ukuran tertentu 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 pada setiap token dalam aliran, mengganti setiap kemunculan yang cocok dengan string pengganti yang telah ditentukan. Opsi pola (jenis: string) - Wajib diisi. pengganti (jenis: string) - Wajib diisi. |
| normalisasi_persia | (jenis hanya berlaku ketika opsi tersedia) | Menerapkan normalisasi untuk bahasa Persia. |
| fonetik | Filter Fonetik Token | Membuat token untuk kecocokan fonetik. Opsi encoder (jenis: string) - Encoder fonetik yang akan digunakan. Nilai yang diizinkan meliputi: metaphone, , doubleMetaphonesoundex, refinedSoundex, caverphone1, caverphone2, cologne, nysiis, koelnerPhonetik, . haasePhonetikbeiderMorse Standar: metaphone. Bawaannya 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. Nilai default adalah benar. |
| porter_stem | (jenis hanya berlaku ketika opsi tersedia) | Mengubah token stream sesuai dengan Algoritma Stemming Porter. |
| terbalik | (jenis hanya berlaku ketika opsi tersedia) | Membalikkan urutan token. |
| scandinavian_normalization | (jenis hanya berlaku ketika opsi tersedia) | Menormalkan penggunaan karakter Skandinavia yang dapat dipertukarkan. |
| scandinavian_folding | (jenis hanya berlaku ketika opsi tersedia) | Menggabungkan karakter åÅäæÄÆSkandinavia ke dalam a dan öÖøØke dalam o. Ini juga mendiskriminasi penggunaan vokal ganda aa, ae, ao, oe dan oo, hanya menampilkan yang pertama. |
| Shingle | ShingleTokenFilter | Membuat kombinasi token sebagai token tunggal. Opsi maxShingleSize (jenis: int) - Secara default diatur ke nilai 2. minShingleSize (jenis: int) - Secara default bernilai 2. outputUnigrams (jenis: bool) - jika true, stream output berisi token input (unigrams) serta shingle. Defaultnya adalah true. outputUnigramsIfNoShingles (tipe: bool) - Jika bernilai true, menggantikan perilaku outputUnigrams==false untuk situasi 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 disisipkan untuk setiap posisi yang tidak ada token. Default adalah _. |
| Bola salju | Filter Token Bola Salju | Filter Token Snowball. Opsi bahasa (jenis: string) - Nilai yang diizinkan meliputi: armenian, basque, catalan, danish, dutch, english, finnish, french, german, german2, hungarian, italian, kp, lovins, norwegian, porter, portuguese, romanian, russian, spanish, swedish, turkish |
| sorani_normalization | SoraniNormalizationTokenFilter | Menormalkan representasi Unicode Sorani teks.Opsi Tidak ada. |
| stemmer | StemmerTokenFilter | Filter stemming yang khusus untuk 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 yang telah melalui proses stemming berbasis kamus ditandai sebagai kata kunci, yang mencegah proses stemming lanjutan. Harus ditempatkan sebelum filter stemming. Opsi aturan (jenis: array string) - Aturan stemming dalam format word => stem berikut ini misalnya ran => run. Defaultnya adalah daftar kosong. Harus diisi. |
| stopwords | StopwordsTokenFilter | Menghapus kata stop dari stream token. Secara bawaan, filter menggunakan daftar kata berhenti yang sudah ditentukan untuk bahasa Inggris. Opsi stopwords (jenis: larik string) - Daftar stopwords. Tidak dapat ditentukan jika stopwordsList ditentukan. stopwordsList (jenis: string) - Daftar stopwords yang telah ditentukan. Tidak dapat ditentukan jika stopwords ditentukan. Nilai yang diizinkan meliputi: arabic, armenian, basque, brazilian, bulgarian, catalan, czech, danish, dutch, english, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, latvian, norwegian, persian, portuguese, romanian, russian, sorani, spanish, swedish, thai, turkish, default: english. Tidak dapat ditetapkan jika stopwords ditentukan. ignoreCase (jenis: bool) - Jika true, semua kata dijadikan huruf kecil terlebih dahulu. Defaultnya adalah false. removeTrailing (tipe: bool) - Jika benar, abaikan istilah pencarian terakhir jika merupakan kata penghenti. Defaultnya adalah true. |
| sinonim | SinonimTokenFilter | Mencocokkan sinonim tunggal atau multi kata dalam alur token. Opsi synonyms (jenis: array string) - Diperlukan. Daftar sinonim dalam salah satu dari dua format berikut: -incredible, unbelievable, fabulous => amazing - semua kata di sisi kiri simbol => diganti dengan kata di sisi kanannya. -incredible, unbelievable, fabulous, amazing - Daftar kata yang memiliki arti serupa, dipisahkan oleh koma. Atur perluas opsi untuk mengubah cara daftar ini ditafsirkan. ignoreCase (jenis: bool) - Mengubah huruf besar/kecil dari input untuk pencocokan. Defaultnya adalah false. perluas (jenis: bool) - Jika benar, semua kata dalam daftar sinonim (jika notasi => tidak digunakan) saling terkait. Daftar berikut: luar biasa, tidak masuk akal, fantastis, menakjubkan setara dengan: luar biasa, tidak masuk akal, fantastis, menakjubkan => luar biasa, tidak masuk akal, fantastis, menakjubkan - Jika false, daftar berikut: luar biasa, tak dapat dipercaya, menakjubkan, hebat setara dengan: luar biasa, tak dapat dipercaya, menakjubkan, hebat => luar biasa. |
| Trim | (jenis hanya berlaku ketika opsi tersedia) | Menghapus spasi kosong depan dan belakang dari token. |
| Pemotongan | TruncateTokenFilter | Memangkas istilah menjadi panjang yang spesifik. Opsi length (jenis: int) - Default: 300, maksimum: 300. Harus diisi. |
| unik | Filter TokenUnique | Memfilter token yang memiliki teks sama dengan token sebelumnya. Opsi onlyOnSamePosition (jenis: bool) - Jika diatur, menghapus duplikat hanya di posisi yang sama. Secara default, nilainya adalah true. |
| huruf besar | (jenis hanya berlaku ketika opsi tersedia) | Menormalkan teks token ke huruf kapital. |
| 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. Nilai bawaan adalah true.generateNumberParts (tipe: bool) - Menyebabkan sub-kata dari angka dibuat. Pengaturan bawaan adalah benar. catenateWords (jenis: bool) - Menyebabkan bagian kata dengan urutan maksimum digabungkan, misalnya Azure-Search menjadi AzureSearch. Defaultnya adalah false.catenateNumbers (jenis: bool) - Menyebabkan rangkaian bagian angka digabungkan secara maksimal, misalnya 1-2 menjadi 12. Defaultnya adalah false.catenateAll (jenis: bool) - Menyebabkan semua bagian subkata digabungkan, misalnya Azure-Search-1 menjadi AzureSearch1. Defaultnya adalah false.splitOnCaseChange (jenis: bool) - Jika benar, memisahkan kata-kata pada caseChange, misalnya AzureSearch menjadi AzureSearch. Nilai 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 benar.stemEnglishPossessive (jenis: bool) - Menyebabkan yang diakhir 's dihapus untuk setiap subword. Nilai default adalah true.protectedWords (jenis: larik string) - Token untuk melindungi agar tidak dibatasi. Defaultnya adalah daftar kosong. |
1 Jenis Filter Token selalu diawali dengan #Microsoft.Azure.Search di dalam kode sehingga ArabicNormalizationTokenFilter sebenarnya akan ditentukan sebagai #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Kami menghapus awalan untuk mengurangi lebar tabel, tetapi ingatlah untuk menyertakannya dalam kode Anda.