Tüm Ürünler
Search
Belge Merkezi

Elasticsearch:IK analizörü eklentisini (analysis-ik) kullanma

Son Güncelleme:Oct 04, 2026

IK analizörü eklentisi (analysis-ik), Alibaba Cloud Elasticsearch için birden fazla yerleşik sözlük türüyle Çin metinlerinin belirteçlere ayrılmasını sağlar. Belirteçlere ayırma doğruluğunu artırmak amacıyla sözlükleri özelleştirebilir veya genişletebilir ve uzaktan yönetim için Object Storage Service (OSS) üzerinden sözlük dosyalarını dinamik olarak yükleyebilirsiniz.

Arka plan bilgileri

IK analizörü eklentisi; belirteçlere ayırıcılar, sözlük dosyaları ve güncelleme mekanizmaları olmak üzere üç bileşenden oluşur.

Alibaba Cloud Elasticsearch üzerindeki IK analizörü eklentisi, açık kaynaklı IK eklentisine (infinilabs/analysis-ik) dayanır. main.dic ve stopword.dic gibi varsayılan sözlükler, açık kaynak sürümdekilerle tutarlıdır. Ayrıca, Alibaba Cloud Elasticsearch Object Storage Service (OSS) üzerinden sözlük dosyalarının dinamik olarak yüklenmesini destekler.

Önemli

IK analizörü eklenti sürümü, Elasticsearch kümesi sürümüyle eşleşmelidir. Örneğin, kümeniz 8,17 sürümünü çalıştırıyorsa IK analizörü eklentisi de 8,17 sürümündedir.

  • Belirteçlere ayırıcılar: Çin metinlerini anlamlı belirteçlere böler ve belirteçlere ayırma granularity'sini kontrol eder.

  • Sözlük dosyaları: Belirteçlere ayırıcıların bölme işlemi için dayandığı kelime dağarcığını sağlar. Sözlükler özelleştirme ve genişletmeyi destekler.

  • Sözlük güncelleme yöntemleri: Hem soğuk hem de sıcak güncellemeleri destekleyerek iş gereksinimlerinizi karşılamak üzere sözlükleri esnek bir şekilde ayarlamanıza olanak tanır.

Belirteçlere ayırma kuralları

IK analizörü iki belirteçlere ayırma modunu destekler:

  • ik_max_word: Metni en ince granularity düzeyinde böler. Terim tabanlı sorgular için idealdir.

  • ik_smart: Metni daha kaba granularity düzeyinde böler. Öbek tabanlı sorgular için idealdir.

Sözlük türleri

IK analizörü aşağıdaki sözlük türlerini destekler.

Sözlük türü

Açıklama

Dosya gereksinimleri

Desteklenen güncelleme yöntemleri

Ana sözlük

Varsayılan ana sözlük main.dic olup 270.000'den fazla Çince kelime içerir.

Bir ES dizini için ana sözlük yapılandırdığınızda, küme dizine ekleme sırasında gelen verileri bu sözlükle eşleştirir. Eşleşen terimler ilgili anahtar kelimeler aracılığıyla aranabilir hale gelir.

Her satıra bir kelime gelecek şekilde kaydedilen, UTF-8 kodlamalı bir DIC dosyası.

Durdurma kelimesi sözlüğü

Varsayılan durdurma kelimesi sözlüğü stopword.dic olup a, the, and, at, but gibi İngilizce durdurma kelimelerini içerir.

Bir ES dizini için durdurma kelimesi sözlüğü yapılandırdığınızda, küme dizine ekleme sırasında eşleşen terimleri filtreler. Filtrelenen terimler ters dizinden hariç tutulur.

Edat sözlüğü

Varsayılan edat sözlüğü preposition.dic olup, belirteçlere ayırıcının edatları sonraki kelimelerden ayırmasına yardımcı olmak üzere edatları depolar.

Uygulanamaz

Soğuk güncelleme

Miktar belirteci sözlüğü

Varsayılan miktar belirteci sözlüğü quantifier.dic olup, belirteçlere ayırıcının miktar belirteci-isim birleşimlerini tanımasına yardımcı olmak üzere birimle ilgili terimleri ve miktar belirteçlerini depolar.

suffix.dic

Belirteçlere ayırıcının son ekli kelimeleri ayırmasına yardımcı olmak üzere son ek terimlerini depolar.

Uygulanamaz

Güncelleme desteklenmiyor

surname.dic

Belirteçlere ayırıcının isimleri tanımasına yardımcı olmak üzere yaygın Çince soyadlarını depolar.

Sözlük güncelleme yöntemleri

Varsayılanlar ihtiyaçlarınızı karşılamadığında sözlükleri güncelleyin. IK analizörü aşağıdaki yöntemleri destekler.

Güncelleme yöntemi

Açıklama

Senaryolar

Soğuk güncelleme

Sözlük değişikliklerini tüm düğümlere uygulamak üzere ES kümesini yeniden başlatır.

Yüklenen dosyalar tüm ES düğümlerine iletilir ve düğümler yeniden başlatılır. Değişiklikler yeniden başlatma tamamlandıktan sonra etkinleşir.

  • Varsayılan sözlük dosyalarındaki içeriği değiştirin veya silin.

  • Edat veya miktar belirteci sözlük dosyalarını güncelleyin.

Sıcak güncelleme

  • Yalnızca mevcut sözlüklerin içeriği değişir ve dosya adları aynı kalırsa, küme yeniden başlatmadan yeni sözlükleri dinamik olarak yükler.

  • Sözlük dosya adları değişirse veya sözlük dosya listesi değişirse (dosya ekleme, kaldırma veya yeniden adlandırma), küme yapılandırmayı yeniden yüklemek için yeniden başlar. Güncellenmiş yapılandırma yeniden başlatma tamamlandıktan sonra etkinleşir. Buna ilk kez yapılan sıcak güncelleme yapılandırmaları da dahildir.

Not

Yalnızca ana veya durdurma kelimesi sözlüklerinin güncellenmesini destekler.

Önemli

İlk kez sıcak güncelleme yapılandırdığınızda veya sözlük dosya listesini değiştirdiğinizde (sözlük dosyaları ekleme, silme veya yeniden adlandırma), küme yeniden başlar. Yalnızca dosya adı değişmeyen mevcut sözlük dosyalarında yapılan sonraki yalnızca içeriğe yönelik değişiklikler yeniden başlatma olmadan dinamik olarak etkinleşir. İşinizi etkilememek için bu işlemleri yoğun olmayan saatlerde planlayın.

  • Varsayılanlara ek olarak özel sözlük dosyaları ekleyerek ana veya durdurma kelimesi sözlüklerini genişletin.

  • Mevcut ana veya durdurma kelimesi sözlük dosyalarının içeriğini değiştirin (varsayılan ve genişletilmiş sözlükler dahil).

ES sözlük türlerinin karşılaştırılması

Alibaba Cloud Elasticsearch üç sözlük türünü destekler: eş anlamlı sözlük, IK sözlüğü ve AliNLP sözlüğü (analysis-aliws). Aşağıdaki tabloda bunların güncelleme yöntemleri, yeniden başlatma davranışı, API işlemleri ve dosya biçimi gereksinimleri karşılaştırılmaktadır.

Sözlük türü

Güncelleme yöntemi

Küme yeniden başlatmayı tetikler

API işlemi

Dosya biçimi

Eş anlamlı sözlük

Solr veya WordNet kurallarına dayalı eş anlamlı kuralları yazın, ardından konsolda sözlük dosyasını yükleyin.

Evet. Değişiklik yalnızca küme yeniden başlatıldıktan sonra etkinleşir.

Uygulanamaz

TXT dosyası

IK sözlüğü; ana sözlük, soğuk ve sıcak genişletilmiş sözlükler ile durdurma kelimesi sözlüğünü içerir

Konsolda sözlük dosyasını yükleyin veya ilgili API işlemini çağırarak sözlük dosyasını yükleyin.

  • Soğuk güncelleme: evet. Her güncelleme bir yeniden başlatmayı tetikler.

  • Sıcak güncelleme: ilk kez sıcak güncelleme yapılandırdığınızda veya bir sözlük dosya adı ya da sözlük dosya listesi değiştiğinde yeniden başlatma tetiklenir. Yalnızca mevcut bir sözlük dosyasının içeriği değişir ve dosya adı aynı kaldığında yeniden başlatma gerekmez.

Sıcak güncellemeler UpdateHotIkDicts işlemini kullanır. Soğuk güncellemeler UpdateDict işlemini kullanır.

DIC dosyası (UTF-8 kodlama)

AliNLP sözlüğü (analysis-aliws)

Sözlüğü güncellemek için aliws_ext_dict.txt dosyasını yükleyin.

Evet

Uygulanamaz

TXT dosyası (adı aliws_ext_dict.txt)

IK sözlüğü ve AliNLP sözlüğü, uzak sözlük dosyalarını yalnızca Upload OSS File yöntemiyle yüklemeyi destekler.

Tüm sözlük türleri için aşağıdaki hususlar geçerlidir:

  • Ücretler — Sözlük güncellemeleri ek ücretlere neden olmaz.

  • Dosya boyutu sınırları — Tek bir sözlük dosyası en fazla 100 MB olabilir. Tüm sözlük dosyalarının toplam boyutu 200 MB'yi aşamaz ve en fazla 50 sözlük dosyası yükleyebilirsiniz.

  • Sürüm uyumluluğu — analysis-aliws (AliNLP) eklentisi 5.x veya 8.x sürümlerinde desteklenmez.

  • sourceType parametresi — Bir sözlük güncelleme API işlemini çağırdığınızda, bir sözlük dosyasının ilk yüklemesi için sourceType parametresini OSS olarak, aynı ada sahip sözlük dosyasına yönelik sonraki güncellemeler için ise ORIGIN olarak ayarlayın.

Önkoşullar

  • Örnek Normal durumundadır. Ayrıntılar sayfasında örnek durumunu görüntüleyin.

    Not

    Bu konu, 7.10.0 sürümünü çalıştıran bir Alibaba Cloud ES örneğini kullanır. Konsol arayüzleri ve özellikler sürümler arasında farklılık gösterebilir.

  • (İsteğe bağlı) Sözlükleri güncellemeyi planlıyorsanız önce aşağıdaki adımları tamamlayın.

    • Upload OSS File kullanarak güncelleme yapmak için: Önce bir OSS paketi oluşturun ve gerekli sözlük dosyalarını yükleyin.

    • Upload On-premises File kullanarak güncelleme yapmak için: Gerekli sözlük dosyalarını önce yerel makinenize kaydedin.

IK sözlüklerini güncelleme

Varsayılanlar ihtiyaçlarınızı karşılamadığında IK sözlüklerini güncelleyin. Devam etmeden önce güncelleme yöntemini gözden geçirin. Zaten IK belirteçlerine ayırma ile yapılandırılmış dizinler için sözlük güncellemeleri yalnızca yeni verilere uygulanır. Değişiklikleri mevcut verilere uygulamak için dizini yeniden oluşturun.

Soğuk güncelleme

Soğuk güncelleme gerçekleştirmek için:

Uyarı

Soğuk güncellemeler kümeyi yeniden başlatır. Bu işlemi yoğun olmayan saatlerde gerçekleştirin.

  1. Örnek ayrıntıları sayfasına gidin.

    1. Alibaba Cloud Elasticsearch konsolunda oturum açın.

    2. Soldaki gezinme bölmesinde Elasticsearch Clusters seçeneğine tıklayın.

    3. Üst menü çubuğundan bir kaynak grubu ve bölge seçin.

    4. Elasticsearch örnekleri listesinde hedef örnek kimliğine tıklayarak ayrıntılar sayfasına gidin.

  2. analysis-ik eklentisinin soğuk güncelleme sayfasına gidin.

    1. Soldaki gezinme bölmesinde Configuration and Management > Plug-ins seçeneklerini belirleyin.

    2. Built-in Plug-ins sekmesinde analysis-ik eklentisini bulun ve Actions sütununda Standard Update seçeneğine tıklayın.

  3. Soğuk güncellemeyi gerçekleştirin.

    1. Configure IK Dictionaries - Standard Update iletişim kutusunda hedef sözlüğün yanındaki Edit seçeneğine tıklayın, talimatları izleyerek gerekli sözlük dosyasını yükleyin ve ardından Save seçeneğine tıklayın.

      Sözlük dosyalarını aşağıdaki yöntemlerden birini kullanarak yükleyebilirsiniz:

      • Upload On-premises File: image simgesine tıklayın veya talimatları izleyerek yerel dosyanızı sürükleyip bırakın.

      • Upload OSS File: Paket adını ve sözlük dosyası adını girin, ardından Add seçeneğine tıklayın.

        • Paket ve Alibaba Cloud ES örneği aynı bölgede olmalıdır.

        • OSS sözlük dosyaları otomatik olarak senkronize edilmez. Kaynak dosya değişirse değişiklikleri uygulamak için bir sözlük güncellemesi gerçekleştirin.

      Not
    2. Risk onayını seçin ve örneği yeniden başlatmak için OK seçeneğine tıklayın.

      Örnek yeniden başlatıldıktan sonra sözlük güncellemesi tamamlanır.

  4. (İsteğe bağlı) Sözlük güncellemesinin etkili olup olmadığını test edin.

    1. Kibana konsolunda oturum açın.

    2. Sol üst köşedeki image simgesine tıklayın ve kod düzenleyicisini açmak için Management > Developer Tools seçeneklerini belirleyin.

      Chinese character input method for computers giriş metni üzerinde kaba granularity düzeyinde belirteçlere ayırma işlemi gerçekleştirmek için aşağıdaki kodu çalıştırın.

      Not

      Uygulamada, text değerini sözlüğünüzdeki bir kelimeyle değiştirin.

      GET _analyze
      {
        "analyzer": "ik_smart",
        "text": "Chinese character input method for computers"
      }

      Beklenen yanıt aşağıdaki gibidir.

      {
        "tokens" : [
          {
            "token" : "computer",
            "start_offset" : 0,
            "end_offset" : 3,
            "type" : "CN_WORD",
            "position" : 0
          },
          {
            "token" : "Chinese character input",
            "start_offset" : 3,
            "end_offset" : 7,
            "type" : "CN_WORD",
            "position" : 1
          },
          {
            "token" : "method",
            "start_offset" : 7,
            "end_offset" : 9,
            "type" : "CN_WORD",
            "position" : 2
          }
        ]
      }

Sıcak güncelleme

Sıcak güncelleme gerçekleştirmek için:

Not

Dosya adları değişmeyen mevcut sözlük dosyalarında yapılan yalnızca içeriğe yönelik değişiklikler kümeyi yeniden başlatmaz. Sözlük dosya adları veya dosya sayısı değişirse ya da ilk kez sıcak güncelleme yapılandırıyorsanız küme yeniden başlar. İş etkisini en aza indirmek için bu işlemi yoğun olmayan saatlerde gerçekleştirin. Yeniden başlatmanın ardından sözlük otomatik olarak etkinleşir.

  1. Örnek ayrıntıları sayfasına gidin.

    1. Alibaba Cloud Elasticsearch konsolunda oturum açın.

    2. Soldaki gezinme bölmesinde Elasticsearch Clusters seçeneğine tıklayın.

    3. Üst menü çubuğundan bir kaynak grubu ve bölge seçin.

    4. Elasticsearch örnekleri listesinde hedef örnek kimliğine tıklayarak ayrıntılar sayfasına gidin.

  2. analysis-ik eklentisinin sıcak güncelleme sayfasına gidin.

    1. Soldaki gezinme bölmesinde Configuration and Management > Plug-ins seçeneklerini belirleyin.

    2. Built-in Plug-ins sekmesinde analysis-ik eklentisini bulun ve Actions sütununda Rolling Update seçeneğine tıklayın.

  3. Sıcak güncellemeyi gerçekleştirin.

    1. Configure IK Dictionaries - Rolling Update iletişim kutusunda hedef sözlüğün yanındaki Edit seçeneğine tıklayın, talimatları izleyerek gerekli sözlük dosyasını yükleyin ve ardından Save seçeneğine tıklayın.

      Sözlük dosyalarını aşağıdaki yöntemlerden birini kullanarak yükleyebilirsiniz:

      • Upload On-premises File: image simgesine tıklayın veya talimatları izleyerek yerel dosyanızı sürükleyip bırakın.

      • Upload OSS File: Paket adını ve sözlük dosyası adını girin, ardından Add seçeneğine tıklayın.

        • Paket ve Alibaba Cloud ES örneği aynı bölgede olmalıdır.

        • OSS sözlük dosyaları otomatik olarak senkronize edilmez. Kaynak dosya değişirse değişiklikleri uygulamak için bir sözlük güncellemesi gerçekleştirin.

      Not
      • Birden fazla sözlük dosyası yükleyebilirsiniz. Dosya adları .dic ile bitmelidir. Dosya adları harf, rakam ve alt çizgi içerebilir ve 30 karakteri aşmamalıdır.

      • Yüklenen bir sözlük dosyasını değiştirmek için yanındaki Download simgesine tıklayarak dosyayı indirin ve düzenleyin. Ardından orijinal dosyayı silin ve güncellenen dosyayı yeniden yükleyin. Orijinal dosyayı sildikten sonra Save seçeneğine tıklayın; aksi takdirde sistem aynı ada sahip bir dosyanın zaten var olduğunu bildirir.

    2. OK seçeneğine tıklayın ve ES düğümlerinin sözlüğü yüklemeyi bitirmesini bekleyin.

      ES düğümleri sözlük dosyalarını otomatik olarak yükler. Yükleme süreleri düğümler arasında farklılık gösterir — tüm düğümlerin bitmesini bekleyin.

  4. (İsteğe bağlı) Sözlük güncellemesinin etkili olup olmadığını test edin.

    1. Kibana konsolunda oturum açın.

    2. Sol üst köşedeki image simgesine tıklayın ve kod düzenleyicisini açmak için Management > Developer Tools seçeneklerini belirleyin.

      Chinese character input method for computers giriş metni üzerinde kaba granularity düzeyinde belirteçlere ayırma işlemi gerçekleştirmek için aşağıdaki kodu çalıştırın.

      Not

      Uygulamada, text değerini sözlüğünüzdeki bir kelimeyle değiştirin.

      GET _analyze
      {
        "analyzer": "ik_smart",
        "text": "Chinese character input method for computers"
      }

      Beklenen yanıt aşağıdaki gibidir.

      {
        "tokens" : [
          {
            "token" : "computer",
            "start_offset" : 0,
            "end_offset" : 3,
            "type" : "CN_WORD",
            "position" : 0
          },
          {
            "token" : "Chinese character input",
            "start_offset" : 3,
            "end_offset" : 7,
            "type" : "CN_WORD",
            "position" : 1
          },
          {
            "token" : "method",
            "start_offset" : 7,
            "end_offset" : 9,
            "type" : "CN_WORD",
            "position" : 2
          }
        ]
      }

IK analizörü eklentisini kullanma

Pinyin filtresiyle IK belirteçlerine ayırıcıyı kullanarak metni belirteçlere ayırın.

  1. ES örneğinizin Kibana Developer Tools sayfasına gidin.

    1. Kibana konsolunda oturum açın.

    2. Sol üst köşedeki image simgesine tıklayın ve kod düzenleyicisini açmak için Management > Developer Tools seçeneklerini belirleyin.

  2. Bir dizin oluşturun ve IK belirteçlerine ayırıcı ile Pinyin filtresini yapılandırın.

    Özel ik_pinyin_analyzer ile ik_pinyin dizinini oluşturmak için aşağıdaki komutu çalıştırın. Bu analizör ik_max_word belirteçlere ayırma ve Çince terimleri Pinyin'e dönüştüren bir Pinyin filtresi kullanır.

    Not

    Pinyin filtresi, Çince belirteçlere ayırma işlemi tamamlandıktan sonra belirteçleri Pinyin'e dönüştürür.

    PUT ik_pinyin
    {
      "settings":{
        "analysis": {
          "filter": {
            "my_pinyin" : {
                "type" : "pinyin",
                "keep_separate_first_letter" : false,
                "keep_full_pinyin" : true,
                "keep_original" : true,
                "limit_first_letter_length" : 16,
                "lowercase" : true,
                "remove_duplicated_term" : true
              }
          },
          "analyzer": {
            "ik_pinyin_analyzer": {
              "type": "custom",
              "tokenizer": "ik_max_word",
              "filter": ["my_pinyin"]
            }
          }
        }
      },
      "mappings":{
        "properties":{
          "text":{
            "type" : "text",
            "analyzer" : "ik_pinyin_analyzer"
          }
        }
      }
    }

    Temel parametreler aşağıda açıklanmıştır.

    • Pinyin filtresi (filter)

      Not

      Mevcut tüm parametreler Pinyin Analysis for Elasticsearch belgesinde açıklanmıştır.


      Parametre


      Açıklama


      my_pinyin


      Özel Pinyin filtresinin adı.


      type


      Pinyin filtresi kullanmak için pinyin olarak ayarlayın.


      keep_separate_first_letter

      Her karakter için tek ilk harf belirteçlerini hariç tutmak için false olarak ayarlayın.


      keep_full_pinyin

      Tam Pinyin formlarını dahil etmek için true olarak ayarlayın.


      keep_original

      Orijinal giriş metnini korumak için true olarak ayarlayın.


      limit_first_letter_length

      İlk harf dizilerini 16 karakterle sınırlamak için 16 olarak ayarlayın.


      lowercase

      Pinyin'i küçük harfle çıktı almak için true olarak ayarlayın.


      remove_duplicated_term

      Tekrarlanan terimleri kaldırmak için true olarak ayarlayın; örneğin "zh, zh" önlenir.

    • Analizör (analyzer):


      Parametre


      Açıklama


      ik_pinyin_analyzer


      Özel analizörün adı.


      type

      Özel bir analizör tanımlamak için custom olarak ayarlayın.


      tokenizer

      Metni en ince granularity düzeyinde bölmek için ik_max_word olarak ayarlayın.


      filter

      my_pinyin Pinyin filtresini uygulamak için my_pinyin olarak ayarlayın.

      Başarılı bir sonuç aşağıdaki gibidir.

      {
        "acknowledged": true,
        "shards_acknowledged": true,
        "index": "ik_pinyin"
      }
  3. Belirteçlere ayırma sonuçlarını doğrulayın.

    This is a test giriş metnini belirteçlere ayırmak için aşağıdaki kodu çalıştırın.

    GET ik_pinyin/_analyze
    {
      "text": "This is a test",
      "analyzer": "ik_pinyin_analyzer"
    }

    Beklenen yanıt aşağıdaki gibidir.

    {
      "tokens" : [
        {
          "token" : "zhe",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "this is",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "zs",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "shi",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "ge",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "one",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "g",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "ce",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 3
        },
        {
          "token" : "shi",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "test",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "cs",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        }
      ]
    }
    

Alfanümerik karışık kelimeler için belirteçlere ayırmayı optimize etme

ik_max_word belirteçlerine ayırıcıyı kullandığınızda, fawjh6bcm gibi alfanümerik karışık dizeler arama için etkili bir şekilde belirteçlere ayrılmayabilir. Geri çağırmayı iyileştirmek için enable_single_word değerini true olarak ayarlayın. Bu işlem, karışık kelimeleri tek karakterli belirteçlere böler ve karakter düzeyinde eşleştirmeyi mümkün kılar.

Aşağıdaki örnek, enable_single_word etkinleştirilmiş özel bir analizör oluşturur:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "ik_single_char_analyzer": {
          "type": "custom",
          "tokenizer": "my_ik_tokenizer"
        }
      },
      "tokenizer": {
        "my_ik_tokenizer": {
          "type": "ik_max_word",
          "enable_single_word": true
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "ik_single_char_analyzer"
      }
    }
  }
}


Parametre


Açıklama


enable_single_word

Model numaraları veya seri kodları gibi dizeler için geri çağırmayı iyileştirmek üzere alfanümerik karışık dizeleri tek karakterli belirteçlere bölmek için true olarak ayarlayın. Varsayılan: false.

Not

Bu parametre Alibaba Cloud Elasticsearch Serverless ortamlarında da desteklenir.

Karışık Çince-İngilizce arama için ngram belirteçlerine ayırıcıyı kullanma

Çince metinlerle karışık birleştirilmiş İngilizce model numaralarını (örneğin jh6bcm) ararken, IK analizörü tek başına kısmi eşleştirme için etkili belirteçler üretmeyebilir. Bu durumda, IK analizörünü tamamlayıcı veya yerine koymak için ngram belirteçlerine ayırıcıyı kullanın.

Ngram belirteçlerine ayırıcı, metni yapılandırılabilir uzunlukta bitişik karakter dizilerine böler ve alt dize eşleştirmeyi mümkün kılar.

Aşağıdaki örnek, ngram belirteçlerine ayırıcıyı kullanan bir dizin oluşturur:

PUT my_ngram_index
{
  "settings": {
    "analysis": {
      "tokenizer": {
        "my_ngram_tokenizer": {
          "type": "ngram",
          "min_gram": 2,
          "max_gram": 3,
          "token_chars": ["letter", "digit"]
        }
      },
      "analyzer": {
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "my_ngram_tokenizer"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "model_number": {
        "type": "text",
        "analyzer": "ngram_analyzer"
      }
    }
  }
}


Parametre


Açıklama


min_gram

Bir gramın minimum karakter uzunluğu. Varsayılan: 1.


max_gram

Bir gramın maksimum karakter uzunluğu. Varsayılan: 2.


token_chars

Belirteçlere dahil edilecek karakter sınıfları. Geçerli değerler: letter, digit, whitespace, punctuation, symbol.

Ngram belirteçlerine ayırıcı yapılandırması hakkında daha fazla bilgi için bkz. Ngram tokenizer.

SSS

Eş anlamlı dosyalardaki büyük harfli kelimeler hatalara neden oluyor. Ne yapmalıyım?

IK analizörü, eş anlamlı dosyaları işlerken büyük/küçük harfe duyarlıdır. Bir eş anlamlı dosyası büyük harfli kelimeler (örneğin IT) içeriyorsa, dizine ekleme sırasında ayrıştırma hataları oluşabilir.

Bu sorunu aşağıdaki yöntemlerden biriyle çözebilirsiniz.

  • Tüm eş anlamlıları küçük harfe dönüştürün: Eş anlamlı dosyanızı düzenleyin ve yüklemeden önce tüm girdileri küçük harfe dönüştürün.

  • Analizöre küçük harf filtresi ekleyin: Eş anlamlı eşleştirmeden önce metni normalleştirmek için analizör yapılandırmanızda eş anlamlı filtreden önce bir lowercase filtresi ekleyin. Örnek:

    PUT my_index
    {
      "settings": {
        "analysis": {
          "filter": {
            "my_synonym_filter": {
              "type": "synonym",
              "synonyms_path": "your_synonyms.txt"
            }
          },
          "analyzer": {
            "ik_synonym_analyzer": {
              "type": "custom",
              "tokenizer": "ik_max_word",
              "filter": ["lowercase", "my_synonym_filter"]
            }
          }
        }
      }
    }
    Önemli

    Metnin eş anlamlı eşleştirme gerçekleşmeden önce küçük harfe dönüştürülmesini sağlamak için lowercase filtresi, filtre zincirinde eş anlamlı filtreden önce görünmelidir.

İlgili konular