Tambahkan penganalisis kustom ke bidang string (karakter) dalam indeks Azure Cognitive Search

Penganalisis kustom adalah kombinasi tokenizer, satu atau beberapa filter token, dan satu atau beberapa filter karakter yang ditentukan pengguna dalam indeks pencarian, lalu direferensikan pada definisi bidang yang memerlukan analisis kustom. Tokenizer bertanggung jawab untuk memecah teks menjadi token, dan filter token untuk memodifikasi token yang dikirimkan oleh tokenizer. Filter karakter menyiapkan teks input sebelum diproses oleh tokenizer. Untuk konsep dan contoh, lihat Penganalisis di Azure Cognitive Search.

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 yang Anda buat tidak terekspos di portal Microsoft Azure. Satu-satunya cara untuk menambahkan penganalisis kustom adalah melalui kode yang mendefinisikan indeks.

Membuat penganalisis kustom

Untuk membuat penganalisis kustom, tentukan di bagian "analyzers" indeks pada saat desain, lalu referensikan di bidang Edm.String 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 salah satu 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 lebih filter dari Filter Karakter, yang diproses sebelum tokenisasi, dalam urutan yang disediakan. Beberapa filter karakter memiliki opsi, yang dapat diatur di bagian "charFilter". Filter karakter bersifat opsional.

  • "tokenizer" adalah 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 lebih filter dari Filter Token, yang diproses setelah tokenisasi, dalam urutan yang disediakan. Untuk filter token yang memiliki opsi, tambahkan bagian "tokenFilter" 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 lebih banyak contoh, lihat Menambahkan penganalisis di Azure Cognitive Search.

Menguji penganalisis kustom

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

Minta

  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, tidak dapat diubah. 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.




huruf kecil (jenis: bool) - Menentukan apakah istilah yang lebih rendah. Secara default adalah benar.


(tipe: string) - Pola ekspresi reguler agar sesuai dengan pemisah token. Defaultnya adalah \W+, yang cocok dengan karakter non-kata.


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

stopwords (ketik: array string) - Daftar kata kunci. 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 standar.lucene) StandardAnalyzer Penganalisis Lucene standar, terdiri dari tokenizer standar, filter huruf kecil, dan filter stop.




maxTokenLength (ketik: 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 (ketik: array string) - Daftar kata kunci. 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.




stopwords (ketik: array string) - Daftar kata kunci. 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" sehingga "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 yang terkait.

Filter karakter

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

Cognitive 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 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.




pemetaan (tipe: array string) - Daftar pemetaan format berikut: "a = > b" (semua kejadian karakter "a" diganti dengan karakter "b"). Wajib 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", pattern="(aa)\\s+(bb)" replacement="$1#$2", result = "aa#bb aa#bb".




pola (jenis: string) - Diperlukan.

penggantian (tipe: string) - Diperlukan.

1 Jenis Filter Karakter selalu diawali dalam kode dengan "#Microsoft.Azure.Search" sehingga "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 yang terkait.

Tokenizer

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

Cognitive 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.




maxTokenLength (ketik: 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.




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

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

tokenChars (ketik: array string) - Kelas karakter untuk disimpan dalam token. Nilai yang diizinkan:
"huruf", "digit", "spasi putih", "tanda baca", "simbol". Default ke larik kosong - menyimpan semua karakter.
keyword_v2 KeywordTokenizerV2 Mengirimkan seluruh input sebagai token tunggal.




maxTokenLength (ketik: 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.




maxTokenLength (ketik: 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 (ketik: bool) - Atur ke true jika digunakan sebagai tokenizer pencarian, diatur ke false jika digunakan sebagai pengindeksan tokenizer.

bahasa (ketik: string) - Bahasa untuk digunakan, default "inggris". Nilai-nilai yang diizinkan meliputi:
"bangla", "bulgaria", "catalan", "chineseSimplified", "chineseTraditional", "croatia", "ceko", "denmark", "belanda", "inggris", "perancis", "jerman", "yunani", "gujarati", "hindi", "islandia", "indonesia", "italia", "Jepang", "kannada", "korea", "melayu", "malayalam", "marathi", "norwegianBokmaal", "polandia", "portugis", "portugisBrazilian", "punjabi", "rumania", "rusia", "serbiaCyrillic", "serbiaLatin", "slovenia", "spanyol", "swedia", "tamil" , "telugu", "thai", "ukrainian", "urdu", "vietnam"
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Membagi teks menggunakan aturan khusus bahasa dan mengurangi kata-kata ke bentuk dasar mereka




maxTokenLength (ketik: 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 (ketik: bool) - Atur ke true jika digunakan sebagai tokenizer pencarian, diatur ke false jika digunakan sebagai pengindeksan tokenizer.

bahasa (ketik: string) - Bahasa untuk digunakan, default "inggris". Nilai-nilai yang diizinkan meliputi:
"arab", "bangla", "bulgaria", "catalan", "kroasia", "ceko", "denmark", "belanda", "inggris", "estonian", "finlandia", "prancis", "jerman", "yunani", "gujarati", "ibrani", "hindi", "hungaria", "islandia", "indonesia", "italia", "kannada", "latvia", "lithuania", "melayu", "malayalam", "marathi", "norwegianBokmaal", "polish", "portugis", "portugisBrazilian", "punjabi", "rumania", "Rusia", "serbianCyrillic", "serbianLatin", "slovak", "slovenia", " spanyol", "swedia", "tamil", "telugu", "turki", "ukraina", "urdu"
nGram NGramTokenizer Tokenisasi input menjadi n-gram dari ukuran yang diberikan.




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

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

tokenChars (ketik: array string) - Kelas karakter untuk disimpan dalam token. Nilai yang diizinkan: "huruf", "angka", "spasi kosong", "tanda baca", "simbol". Default ke larik kosong - menyimpan semua karakter.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizer untuk hierarki seperti jalur. Pilihan
delimiter (ketik: string) - Default: '/.

penggantian (tipe: string) - Jika diatur, ganti karakter pembatas. Defaultnya sama dengan nilai pembatas.

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

reverse (jenis: bool) - Jika benar, menghasilkan token dalam urutan terbalik. Default: false.

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





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


(ketik: string) - Bendera ekspresi reguler. Defaultnya adalah string kosong. Nilai yang diizinkan: CANON_EQ, CASE_INSENSITIVE, KOMENTAR, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, grup UNIX_LINES

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




maxTokenLength (ketik: 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.




maxTokenLength (ketik: 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" sehingga "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 yang 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 dijalankan sesuai urutan daftarnya.

Dalam tabel di bawah ini, filter token yang diterapkan 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 (blok Unicode "Latin Dasar") menjadi setara ASCII, 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. Wajib 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. Wajib diisi.

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

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

maxSubwordSize (jenis: int) - Hanya subkata yang lebih pendek dari ini yang dikeluarkan. 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: "depan", "belakang"
elision ElisionTokenFilter Menghilangkan elision. Misalnya, "l'avion" (pesawat) dikonversi menjadi "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 Bahasa 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. Wajib 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. Wajib 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 kstem berkinerja tinggi untuk bahasa Inggris.
panjang 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. Wajib 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", "doubleMetaphone", "soundex", "refinedSoundex", "caverphone1", "caverphone2", "cologne", "nysiis", "koelnerPhonetik", "haasePhonetik", "beiderMorse". 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) Folds Scandinavian characters åÅäæÄÆ- > a and öÖøØ- > o. Juga mendiskriminasi terhadap penggunaan vokal ganda aa, ae, ao, oe dan oo, hanya menyisakan 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 " ".

filterToken (jenis: string) - String untuk disisipkan untuk setiap posisi yang tidak ada token. Defaultnya adalah "_".
snowball SnowballTokenFilter 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 dari teks Sorani.

Opsi

Tidak ada.
stemmer StemmerTokenFilter Filter stemming spesifik bahasa.

Opsi

bahasa (jenis: string) - Nilai yang diizinkan meliputi:
- -
- -
- -
- -
- "Bulgaria"
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- "lightFinnish"
- -
- -
- -
- "Galician"
- "minimalGalician"
- -
- -
- -
- "minimalGerman"
- -
- "hindi"
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- "lightSwedish"
- -
stemmer_override StemmerOverrideTokenFilter Setiap istilah kamus-Stemmed ditandai sebagai kata kunci, yang mencegah stemming rantai. Harus ditempatkan sebelum filter stemming.

Opsi

aturan (ketik: array string) - Membendung aturan dalam format berikut "kata = > batang" misalnya "ran = > run". Defaultnya adalah daftar kosong. Wajib 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 kata umum 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 ditentukan jika kata umum 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:

-luar biasa, tidak dapat dipercaya, luar biasa = > menakjubkan - 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 (ketik: bool) - Jika benar, semua kata dalam daftar sinonim (jika = > notasi tidak digunakan) peta satu sama lain.
Daftar berikut: luar biasa, luar biasa, luar biasa, menakjubkan setara dengan: luar biasa, luar biasa, luar biasa, menakjubkan = > luar biasa, luar biasa, luar biasa, menakjubkan

- Jika salah, daftar berikut: luar biasa, luar biasa, luar biasa, menakjubkan 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.
truncate TruncateTokenFilter Memotong istilah menjadi panjang tertentu.

Opsi

length (jenis: int) - Default: 300, maksimum: 300. Wajib 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.
uppercase (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 bagian kata maksimum disambung, misalnya "Azure-Search" menjadi "AzureSearch". Defaultnya adalah false.

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

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

splitOnCaseChange (jenis: bool) - Jika true, membagi kata pada perubahan huruf besar/kecil, 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, memecah angka, misalnya "Azure1Search" menjadi "Azure" "1" "Search". Defaultnya adalah true.

stemEnglishPossessive (jenis: bool) - Menyebabkan ekor "'s" dihapus untuk setiap subkata. 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" sehingga "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.

Lihat juga