Menambahkan penganalisis kustom ke bidang string dalam indeks Pencarian Azure AI
Penganalisis kustom adalah komponen analisis leksikal melalui 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 berdasarkan per 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 Pencarian dan Tutorial Azure AI: Membuat penganalisis kustom untuk nomor telepon.
Mengapa menggunakan penganalisis kustom?
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 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 membuat skema 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 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.
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 bagiancharFilters
. 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, tambahkantokenFilter
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_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 | 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_type1 | 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 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.
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_type1 | 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 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 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 , chineseTraditional chineseSimplified , croatian czech , danish , dutch , , english gujarati greek german french , , hindi , icelandic , , romanian punjabi portugueseBrazilian russian portuguese polish norwegianBokmaal serbianCyrillic marathi malayalam serbianLatin tamil swedish telugu spanish thai ukrainian italian kannada urdu japanese korean malay slovenian indonesian vietnamese |
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 , croatian catalan , czech danish , dutch , english , estonian , french finnish gujarati greek german hebrew , , ukrainian 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 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 , , digit whitespace , 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 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 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 berikut, filter token yang diimplementasikan menggunakan Apache Lucene ditautkan ke dokumentasi LUCENE API.
token_filter_name | token_filter_type1 | 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 ke dalam varian Katakana dasar dan lebar setengah yang setara ke dalam 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 ukuran yang diberikan dari 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 dari 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 , , soundex doubleMetaphone , refinedSoundex , caverphone1 , caverphone2 , cologne , nysiis , koelnerPhonetik , . beiderMorse haasePhonetik 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 aa ganda , , ae , ao oe 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 disisipkan untuk setiap posisi yang tidak ada token. Default adalah _ . |
snowball | SnowballTokenFilter | Filter Token Snowball. Opsi bahasa (jenis: string) - Nilai yang diizinkan meliputi: armenian , , , catalan basque , danish , dutch , english , french finnish , german2 hungarian german kp italian lovins , norwegian , porter , portuguese , , romanian , russian , , spanish swedish turkish |
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 , danish czech , dutch english , , finnish , french , galician greek hindi german , hungarian , latvian norwegian italian persian irish portuguese spanish russian romanian indonesian swedish thai sorani , turkish default: . 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) memetakan 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 Azure Search . 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 Azure Search . 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 Azure 1 Search . 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 ingatlah untuk menyertakannya dalam kode Anda.