12/03/2016 - ELASTICSEARCH
Aşağıdakiler faydalı sayılabilecek elasticsearch notlarıdır.
index
veritabanına, type
tabloya ve mapping
ise alana denk gelir.analyzed
olarak işaretlenmiş ise, o alanda full-text arama yapılabilir.not_analyzed
olarak işaretlenmiş ise, o alanda full-text arama yapılamaz. Onun yerine sadece eşittir = araması yapılır.analyzed
, hem de not_analyzed
olarak tanımlamanıza yardımcı olur."sort":[{"_score":"desc"}]
ekini kullanır. Bu full-text arama yapıyorsanız faydalı olur.match
ve multi_match
sorgularına bakabilirsiniz.multi_match
ile birlikte "type": "most_fields"
özelliğini kullanabilirsiniz.AVG
, MIN
, MAX
, SUM
, COUNT
, GROUP BY
gibi fonksiyonları kullanmak isterseniz, Aggregations özelliğini kullanmanız gerekir."type": "most_fields"
özelliği o bulunan kayda daha yüksek not verir. Daha fazla bilgi için Most Fields sayfasını okuyabilirsiniz.NULL
veya NOT NULL
verilerini kullanacaksanız, Dealing with Null Values sayfasında anlatılan missing
ve exists
özelliklerini kullanmanız gerekecektir.sort
işlemi yaparken SearchParseException
hatası alırsanız, sort
alanına "ignore_unmapped": true
bayrağını ekleyebilirsiniz.boost
özelliğini kullanıp en gerçekçi sıralamaya ulaşmak isterseniz, Function Score Query sorgusunu, "score_mode": "sum"
ve "boost_mode": "replace"
özellikleriyle birlikte kullanınız.Eğer data ayrıntılı bilge isterseniz Basic Concept sayfasını ziyaret edebilirsiniz.
Cluster (küme), tüm verilerinizi tutan bir veya daha fazla node'den (sunucu) oluşan bir koleksiyondur. Tüm nodelere arama yetenekleri sağlar. Her cluster benzersiz bir adla tanımlanır ve varsayılan olarak "elasticsearch" kullanılır.
Node (düğüm), kümenizin bir parçası olup, verilerinizi depolayan ve arama özelliklerine katılan tek bir sunucudur. Tıpkı bir küme gibi, bir düğüm varsayılan olarak rastgele (UUID) olan bir adla tanımlanır.
Index (dizin), bir belgeler (veri) koleksiyonudur. Bir dizin küçük harflerle adlandırılır. Tek bir kümede, istediğiniz sayıda dizin tanımlayabilirsiniz.
Bir type (tür), dizin içindeki bir mantık kategori olup aynı dizin içindeki farklı belge türlerini saklamanıza izin verir.
Document (belge), dizin halini alabilen temel bilgi birimidir. Örneğin: tek müşteri, ürün, sipariş vs. Belge JSON formatında ifade edilmiştir. Bir dizin, istediğiniz sayıda belge içerebilir.
Bir dizin, tek bir nodenin disk sınırlarını aşan büyük miktarda veri depolayabilir. Bu, yavaş arama operasyonlarına neden olur. Elasticsearch, indeksinizi parçalardan oluşan birden fazla parçaya bölme olanağı sağlar ve bu bölmelere shard denir. Shard önemlidir çünkü:
Elasticsearch, dizininizin bir veya daha fazla kopyasını çoğaltmalara yapmanıza izin verir ve bunlara replica shard denir. Bu önemli bir şeydir çünkü gerçek hayatta her an hatalar beklenebilir. Örneğin, bir shard veya node ortadan durabilir veya bozulabilir. Replica önemlidir çünkü:
Varsayılan olarak, Elasticsearch'teki her bir index için 5 ana shard ve 1 replica tahsis edilir. Cluster içinde en az iki node varsa, dizin toplam 5 birincil shard ve 5 replica shard sahip olması anlamına gelir. Bu da indeks için 10 shard anlamına gelir.