Elasticsearch Genel

Elasticsearch Analyzers ile Metin Analizi Nasıl Yapılır

Elasticsearch Analyzers ile Metin Analizi Nasıl Yapılır

Elasticsearch Analyzers ile Metin Analizi Nasıl Yapılır

Elasticsearch, büyük veri kümelerinde arama ve analiz yaparken etkili bir araç olarak öne çıkar. Güçlü ve esnek yapısı sayesinde metin analizi için gelişmiş çözümler sunar. Bu makalede, Elasticsearch analyzers ile metin analizi nasıl yapılır, adım adım incelenecektir. Ayrıca, analizörlerin nasıl özelleştirileceğine dair detaylı bilgi ve örnekler verilecektir.

Elasticsearch Analyzers Nedir?

Elasticsearch’te analizörler, metni indekslemeye ve sorgulamaya hazır hale getiren bileşenlerdir. Bir metin alanı için analizör, sözcükleri küçük harflere çevirir, standartlaştırır ve gereksiz kelimeleri temizler. Temel olarak, üç ana bileşenden oluşurlar:

1. Tokenizer (Jetonlaştırıcı): Metni parçalara bölen bir bileşendir. Örneğin, kelimelere veya cümlelere böler.

  1. Character Filters (Karakter Filtresi): Metinde yer alan özel veya gereksiz karakterleri temizler ve düzenler. URL ya da HTML etiketlerini çıkarmak için kullanılabilir.
3. Token Filters (Token Filtresi): Tokenizer’dan çıkan kelimeleri işlemler. Örneğin, kelimeleri lemmatize edebilir veya gereksiz kelimeleri (stopwords) kaldırabilir.

Elasticsearch’de Analyzers Nasıl Kullanılır?

Adım 1: Index Tanımı ve Analyzer Oluşturma

Öncelikle, Elasticsearch’te yeni bir index oluşturmak ve analizör tanımlamak gerekiyor. Aşağıdaki örnek, bir özel analizör ile bir indeksin nasıl tanımlanacağını gösterir:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "custom_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "asciifolding"
          ]
        }
      }
    }
  }
}

Yukarıdaki örnekte, custom_analyzer adlı bir analizör tanımlanmıştır. Bu analizör, standart tokenizer kullanır, tüm kelimeleri küçük harfe çevirir ve ASCII dışındaki karakterleri ASCII’ye dönüştürür.

Adım 2: Index Mapping ve Alan Tanımı

Analizörü kullanacak alanları belirlemek için mapping oluşturulmalıdır. text tipi bir alan oluşturulacak ve analizör bu tip üzerinde çalışacaktır.

PUT /my_index/_mapping
{
  "properties": {
    "content": {
      "type": "text",
      "analyzer": "custom_analyzer"
    }
  }
}

Mapping, content adlı alan üzerinde custom_analyzer kullanılacağını belirtir.

Adım 3: Veri İndeksleme

Artık verilerimizi indeksleyebiliriz. Aşağıda basit bir örnek verilmiştir:

POST /my_index/_doc/1
{
  "content": "Elasticsearch ile metin analizi yapmak oldukça kolaydır."
}

Adım 4: Arama ve Sorgulama

Veriyi indirebilir ve sorguları çalıştırabilirsiniz. Örneğin, analyze API’si ile bir metin parçasının nasıl analiz edileceğini test edebilirsiniz:

POST /my_index/_analyze
{
  "analyzer": "custom_analyzer",
  "text": "Elasticsearch ile metin analizi yapmak oldukça kolaydır."
}

Bu işlem, metnin nasıl tokenleştirildiğini ve nasıl işlendiğini gösterir.

Performans ve Ölçeklenebilirlik

Metin analizi işlemleri, sanal sunucu, VDS sunucu veya bulut sunucu çözümleri ile daha yüksek performans ve ölçeklenebilirlik ile gerçekleştirilebilir. Özellikle büyük veri kümeleri üzerinde analiz yaparken, doğru bir sunucu altyapısı seçimi önemlidir. Sanal Sunucu gibi çözümler, ihtiyacınıza göre esnek kapasite sağlar.

Elasticsearch, metin analizinde güçlü ve esnek bir araçtır. Analyzers sayesinde metinleri indekse uygun hale getirerek arama ve sorgularda daha etkili sonuçlar elde edebilirsiniz. Sunucularınızı optimize ederek daha iyi performans elde edebilir ve kompleks analizleri kolayca gerçekleştirebilirsiniz.