Elasticsearch’da Synonym token filtresi için kullanılabilen bazı farklı tokenizer
değerleri aşağıda listelenmiştir:
standard
: Metni standart bir dil işleme yöntemine göre böler. Kelimeleri noktalama işaretlerine ve boşluklara göre ayırır.letter
: Metni alfabetik olmayan karakterlere göre böler. Sadece harf karakterlerini kabul eder ve diğer karakterleri atlar.lowercase
: Metni küçük harfe dönüştürdükten sonra standart bir dil işleme yöntemine göre böler. Bu, büyük/küçük harf duyarlılığını ortadan kaldırabilir.whitespace
: Metni boşluklara göre böler. Kelimeler arasındaki boşlukları kullanarak terimleri ayırır.nGram
: Metni belirli bir karakter aralığında (n-gram) böler. Örneğin, 2-gramlar halinde bölmek için2
değeri kullanılabilir.edgeNGram
: Metni kenar karakter aralıklarında (başlangıç n-gram) böler. Örneğin, 2-gramlarla başlamak için2
değeri kullanılabilir.keyword
: Metni hiçbir şekilde bölmez, tamamen orijinal metni korur.- Özel bir özel tokenizasyon yöntemi: Kendi özel metin analizi veya tokenizasyon mantığınızı uygulamak için gerektiğinde özel bir tokenizasyon yöntemi belirleyebilirsiniz.
Bu tokenizer
değerleri, metni nasıl böleceğinizi belirlemenizi sağlar ve Synonym token filtresinin etkili bir şekilde çalışabilmesi için önemlidir. Hangi tokenizer
‘ü kullanmanız gerektiğine karar verirken, verilerinizin yapısını ve arama gereksinimlerinizi dikkate almalısınız.
"analysis": {
"filter": {
"my_synonyms_filter": {
"type": "synonym",
"synonyms": [
"usa, united states, america",
"uk, united kingdom, britain"
]
},
"my_edge_ngram_filter": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 10,
"token_chars": ["letter", "digit"]
}
},
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "my_synonyms_filter", "my_edge_ngram_filter"]
}
}
}
.NET kütüphanesinde ise aşağıda ki şekilde Synonyms kullanılabilir
.Synonym("synonym", sy =>
{
return new SynonymTokenFilter()
{
Synonyms = new List<string> { "usa, united states, america" },
IgnoreCase = true,
Tokenizer = "keyword"
};
})