ElasticSearch'ü özel bir dizin ve arama analizcisi ile kullanıyorum. Kullanıcı verilerini sorgulıyorum ve bazen dizelerde aynı oluşumlar var.ElasticSearch analyzer: indekste aynı sözcük oluşumlarını kaldırmanın bir yolu var mı?
Örnek: "Merhaba Dünya Merhaba Bay!" 2 kez "Merhaba" görebileceğiniz yer.
"Merhaba Dünya" için arama yapıyorsam, "Merhaba Dünya Merhaba Bay!" Ile daha iyi bir puan alacağım. "Merhaba Dünya" dan. Mantıklı olsa bile bu davranışı istemiyorum.
Yani, endeksleme ile aynı sözcük oluşumlarını kaldırmak mümkün mü? Örnek: "Merhaba Dünya Merhaba Bay!" => "Merhaba Dünya Bay!"
Bulunduğum haritalama ve ayarları:
settings index: { number_of_shards: 1, number_of_replicas: 1 }, analysis: {
analyzer: {
custom_analyzer: {
tokenizer: "custom_tokenizer",
filter: ["lowercase", "asciifolding", "custom_spliter"]
}
},
filter: {
custom_spliter: {
type: "word_delimiter",
preserve_original: "true"
}
},
tokenizer: {
custom_tokenizer: {
type: "nGram",
min_gram: "3",
max_gram: "3",
token_chars: [ "letter", "digit" ]
}
}
} do
mappings dynamic: 'false' do
indexes :searchable, analyzer: "custom_analyzer"
end
end
mi-mümkün bunu yapmak için?
Sadece mükemmel çalışıyor! Teşekkürler –