{"id":36570,"date":"2025-12-20T01:30:40","date_gmt":"2025-12-19T22:30:40","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/"},"modified":"2025-12-20T01:30:40","modified_gmt":"2025-12-19T22:30:40","slug":"atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/","title":{"rendered":"Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi"},"content":{"rendered":"<h2>Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi<\/h2>\n<p>MongoDB Atlas Search, veritaban\u0131 i\u00e7inde g\u00fc\u00e7l\u00fc tam metin arama yetenekleri sunar. Arama motorlar\u0131n\u0131n temel amac\u0131, kullan\u0131c\u0131ya en alakal\u0131 sonu\u00e7lar\u0131 sunmakt\u0131r. Bu alaka d\u00fczeyini belirleyen kritik fakt\u00f6r arama skorlar\u0131d\u0131r. Bu makalede, Atlas Search&#8217;\u00fcn arama skorlar\u0131n\u0131 nas\u0131l hesaplad\u0131\u011f\u0131n\u0131, temelini olu\u015fturan BM25 algoritmas\u0131n\u0131n detaylar\u0131n\u0131 ve bu skorlar\u0131 nas\u0131l optimize edebilece\u011finizi derinlemesine inceleyece\u011fiz.<\/p>\n<h3>Atlas Search ve Arama Alaka D\u00fczeyi<\/h3>\n<p>Modern uygulamalarda kullan\u0131c\u0131lar, arama kutusuna yazd\u0131klar\u0131 sorgular\u0131n en do\u011fru ve alakal\u0131 sonu\u00e7lar\u0131n\u0131 an\u0131nda beklerler. MongoDB Atlas Search, bu beklentiyi kar\u015f\u0131lamak i\u00e7in tasarlanm\u0131\u015f, do\u011frudan MongoDB verileriniz \u00fczerinde \u00e7al\u0131\u015fan entegre bir arama \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Ancak &#8220;alaka d\u00fczeyi&#8221; (relevance) g\u00f6receli bir kavramd\u0131r. Bir arama motoru, hangi belgenin belirli bir sorgu i\u00e7in di\u011ferlerinden daha alakal\u0131 oldu\u011funu nas\u0131l belirler? \u0130\u015fte bu noktada arama skorlar\u0131 devreye girer.<\/p>\n<h4>Neden Arama Skorlar\u0131 \u00d6nemlidir?<\/h4>\n<p>Arama skorlar\u0131, her bir arama sonucuna bir say\u0131sal de\u011fer atayarak, sonu\u00e7lar\u0131n sorguyla ne kadar uyumlu oldu\u011funu nicel olarak ifade eder. Y\u00fcksek skor, daha y\u00fcksek alaka d\u00fczeyi anlam\u0131na gelir. Bu skorlar sayesinde, Atlas Search sonu\u00e7lar\u0131 en alakal\u0131dan en az alakal\u0131ya do\u011fru s\u0131ralayabilir. Kullan\u0131c\u0131 deneyimini do\u011frudan etkileyen bu s\u0131ralama, arama motorunun etkinli\u011finin temel g\u00f6stergesidir.<\/p>\n<h4>Atlas Search&#8217;\u00fcn Rol\u00fc<\/h4>\n<p>Atlas Search, Lucene tabanl\u0131 bir arama motoru kullanarak geli\u015fmi\u015f tam metin arama yetenekleri sunar. Bu, karma\u015f\u0131k sorgular\u0131, fasetleri, vurgulamay\u0131 ve tabii ki sofistike alaka d\u00fczeyi skorlamas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar. Atlas Search, varsay\u0131lan olarak end\u00fcstri standard\u0131 olan BM25 (Okapi BM25) algoritmas\u0131n\u0131 kullanarak arama skorlar\u0131n\u0131 hesaplar.<\/p>\n<h4>Alaka D\u00fczeyini Belirleme<\/h4>\n<p>Alaka d\u00fczeyi, sadece anahtar kelime e\u015fle\u015fmesinden ibaret de\u011fildir. Bir belgede terimin ne s\u0131kl\u0131kta ge\u00e7ti\u011fi, terimin t\u00fcm koleksiyonda ne kadar nadir oldu\u011fu ve belgenin uzunlu\u011fu gibi bir\u00e7ok fakt\u00f6r alaka d\u00fczeyini etkiler. BM25 algoritmas\u0131, bu fakt\u00f6rleri matematiksel bir form\u00fclde birle\u015ftirerek kapsaml\u0131 bir skorlama sa\u011flar.<\/p>\n<h3>BM25 Algoritmas\u0131na Giri\u015f<\/h3>\n<p>BM25, &#8220;Best Match 25&#8221; anlam\u0131na gelir ve bilgi eri\u015fim alan\u0131nda en yayg\u0131n kullan\u0131lan s\u0131ralama fonksiyonlar\u0131ndan biridir. \u00d6zellikle tam metin arama motorlar\u0131nda, bir belgenin belirli bir sorguyla ne kadar alakal\u0131 oldu\u011funu tahmin etmek i\u00e7in kullan\u0131l\u0131r. BM25, TF-IDF (Terim S\u0131kl\u0131\u011f\u0131-Ters Belge S\u0131kl\u0131\u011f\u0131) modelinin daha geli\u015fmi\u015f bir t\u00fcrevidir ve belge uzunlu\u011funu ve terim s\u0131kl\u0131\u011f\u0131 doygunlu\u011funu daha ger\u00e7ek\u00e7i bir \u015fekilde ele al\u0131r.<\/p>\n<h4>BM25 Nedir?<\/h4>\n<p>BM25, bir sorgudaki her terim i\u00e7in ayr\u0131 ayr\u0131 bir skor hesaplar ve bu skorlar\u0131 toplayarak belgenin toplam alaka d\u00fczeyini belirler. Algoritma, terim s\u0131kl\u0131\u011f\u0131 (bir belgedeki terimin ka\u00e7 kez ge\u00e7ti\u011fi) ve ters belge s\u0131kl\u0131\u011f\u0131 (terimin t\u00fcm koleksiyonda ne kadar nadir oldu\u011fu) kavramlar\u0131n\u0131 temel al\u0131r, ancak bu de\u011ferleri belge uzunlu\u011fu ve iki ayarlanabilir parametre (k1 ve b) ile normalize eder.<\/p>\n<h4>BM25&#8217;in Tarih\u00e7esi ve Evrimi<\/h4>\n<p>BM25 algoritmas\u0131, 1990&#8217;lar\u0131n ortalar\u0131nda Stephen E. Robertson ve Karen Sp\u00e4rck Jones taraf\u0131ndan geli\u015ftirilmi\u015ftir. TREC (Text REtrieval Conference) gibi bilgi eri\u015fim yar\u0131\u015fmalar\u0131nda g\u00f6sterdi\u011fi \u00fcst\u00fcn performans sayesinde h\u0131zla pop\u00fclerlik kazanm\u0131\u015ft\u0131r. G\u00fcn\u00fcm\u00fczde Elasticsearch, Solr ve Atlas Search gibi bir\u00e7ok modern arama motorunun temelini olu\u015fturmaktad\u0131r.<\/p>\n<h4>Temel Prensip: Alaka D\u00fczeyi Tahmini<\/h4>\n<p>BM25&#8217;in temel prensibi, bir terimin bir belgede ne kadar s\u0131k ge\u00e7ti\u011fi ve t\u00fcm koleksiyonda ne kadar nadir oldu\u011fu aras\u0131ndaki dengeyi bulmakt\u0131r. Bir terim belgede ne kadar s\u0131k ge\u00e7erse, belgenin o terimle o kadar alakal\u0131 olma olas\u0131l\u0131\u011f\u0131 artar. Ancak, \u00e7ok s\u0131k ge\u00e7en (\u00f6rne\u011fin &#8220;ve&#8221;, &#8220;bir&#8221; gibi) terimlerin alaka d\u00fczeyine katk\u0131s\u0131 d\u00fc\u015f\u00fck olmal\u0131d\u0131r. Ayn\u0131 zamanda, \u00e7ok uzun belgelerin, k\u0131sa belgelere g\u00f6re bir terimi tesad\u00fcfen daha fazla i\u00e7erme olas\u0131l\u0131\u011f\u0131 da hesaba kat\u0131lmal\u0131d\u0131r.<\/p>\n<h3>BM25 Form\u00fcl\u00fcn\u00fcn Bile\u015fenleri<\/h3>\n<p>BM25&#8217;in g\u00fcc\u00fc, alaka d\u00fczeyini hesaplarken birden fazla fakt\u00f6r\u00fc dikkate alan matematiksel form\u00fcl\u00fcnde yatar. \u0130\u015fte bu form\u00fcl\u00fcn ana bile\u015fenleri:<\/p>\n<p>Genel BM25 form\u00fcl\u00fc (bir sorgu Q ve bir belge D i\u00e7in):<\/p>\n<pre><code class=\"language-mathematica\">Score(D, Q) = \u03a3 (IDF(qi) * ((f(qi, D) * (k1 + 1)) \/ (f(qi, D) + k1 * (1 - b + b * (|D| \/ avgdl)))))<\/pre>\n<p><\/code><\/p>\n<p>Burada:<\/p>\n<ul>\n<li><code>qi<\/code>: Sorgudaki i. terim.<\/li>\n<li><code>f(qi, D)<\/code>: Terim s\u0131kl\u0131\u011f\u0131 (Term Frequency - TF), yani <code>qi<\/code> teriminin <code>D<\/code> belgesinde ka\u00e7 kez ge\u00e7ti\u011fi.<\/li>\n<li><code>|D|<\/code>: Belgenin uzunlu\u011fu (kelime say\u0131s\u0131).<\/li>\n<li><code>avgdl<\/code>: Koleksiyondaki t\u00fcm belgelerin ortalama uzunlu\u011fu.<\/li>\n<li><code>k1<\/code>: TF doygunlu\u011funu kontrol eden bir parametre (genellikle 1.2 ile 2.0 aras\u0131nda).<\/li>\n<li><code>b<\/code>: Belge uzunlu\u011fu normalizasyonunu kontrol eden bir parametre (genellikle 0.0 ile 1.0 aras\u0131nda).<\/li>\n<li><code>IDF(qi)<\/code>: Ters Belge S\u0131kl\u0131\u011f\u0131 (Inverse Document Frequency), yani <code>qi<\/code> teriminin nadirli\u011fini \u00f6l\u00e7en bir de\u011fer.<\/li>\n<\/ul>\n<h4>Terim S\u0131kl\u0131\u011f\u0131 (Term Frequency - TF) ve \u00d6nemi<\/h4>\n<p>Terim S\u0131kl\u0131\u011f\u0131 (TF), bir terimin belirli bir belgede ka\u00e7 kez ge\u00e7ti\u011fini g\u00f6sterir. Bir terim belgede ne kadar s\u0131k ge\u00e7erse, o belgenin o terimle o kadar alakal\u0131 olma olas\u0131l\u0131\u011f\u0131 artar. Ancak, TF'nin do\u011frusal bir katk\u0131s\u0131 yoktur; belirli bir noktadan sonra ek ge\u00e7i\u015flerin alaka d\u00fczeyine katk\u0131s\u0131 azal\u0131r (doygunluk). BM25 form\u00fcl\u00fcndeki <code>(f(qi, D) * (k1 + 1)) \/ (f(qi, D) + k1 * (...))<\/code> k\u0131sm\u0131, bu doygunluk etkisini modeller.<\/p>\n<h4>Ters Belge S\u0131kl\u0131\u011f\u0131 (Inverse Document Frequency - IDF) ve Seyreklik<\/h4>\n<p>Ters Belge S\u0131kl\u0131\u011f\u0131 (IDF), bir terimin t\u00fcm koleksiyonda ne kadar nadir oldu\u011funu \u00f6l\u00e7er. Nadir terimler, s\u0131k ge\u00e7en terimlere g\u00f6re daha fazla bilgi ta\u015f\u0131r ve dolay\u0131s\u0131yla alaka d\u00fczeyine daha fazla katk\u0131da bulunmal\u0131d\u0131r. \u00d6rne\u011fin, \"bilgisayar\" terimi \"ve\" teriminden \u00e7ok daha bilgilendiricidir. IDF de\u011feri, bir terimin ge\u00e7ti\u011fi belge say\u0131s\u0131 azald\u0131k\u00e7a artar. Form\u00fcl\u00fc genellikle \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-mathematica\">IDF(qi) = log((N - n(qi) + 0.5) \/ (n(qi) + 0.5) + 1)<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>N<\/code> toplam belge say\u0131s\u0131, <code>n(qi)<\/code> ise <code>qi<\/code> teriminin ge\u00e7ti\u011fi belge say\u0131s\u0131d\u0131r.<\/p>\n<h4>Belge Uzunlu\u011fu Normalizasyonu (DLN) ve 'b' Parametresi<\/h4>\n<p>Belge Uzunlu\u011fu Normalizasyonu (DLN), uzun belgelerin bir terimi tesad\u00fcfen daha fazla i\u00e7erme e\u011filimini dengelemek i\u00e7in kullan\u0131l\u0131r. Uzun belgeler, k\u0131sa belgelere g\u00f6re daha fazla kelime i\u00e7erdi\u011fi i\u00e7in, bir sorgu terimini daha s\u0131k i\u00e7erebilirler. DLN, bu etkiyi azaltarak, terim s\u0131kl\u0131\u011f\u0131n\u0131n belgenin uzunlu\u011funa oranla de\u011ferlendirilmesini sa\u011flar. <code>b<\/code> parametresi (0.0 ile 1.0 aras\u0131nda), belge uzunlu\u011funun skoru ne kadar etkileyece\u011fini kontrol eder:<\/p>\n<ul>\n<li><code>b = 1.0<\/code>: Belge uzunlu\u011fu normalizasyonu tam olarak uygulan\u0131r. Uzun belgeler, k\u0131sa belgelere g\u00f6re daha az \"\u00f6d\u00fcllendirilir\".<\/li>\n<li><code>b = 0.0<\/code>: Belge uzunlu\u011fu normalizasyonu uygulanmaz. Belge uzunlu\u011fu skoru etkilemez.<\/li>\n<li><code>0.0 < b < 1.0<\/code>: K\u0131smi normalizasyon uygulan\u0131r.<\/li>\n<\/ul>\n<p>Atlas Search'te varsay\u0131lan <code>b<\/code> de\u011feri genellikle 0.75'tir.<\/p>\n<h4>k1 Parametresi: TF Doygunlu\u011funu Kontrol Etme<\/h4>\n<p><code>k1<\/code> parametresi (genellikle 1.2 ile 2.0 aras\u0131nda), terim s\u0131kl\u0131\u011f\u0131 (TF) katk\u0131s\u0131n\u0131n doygunluk noktas\u0131n\u0131 kontrol eder. D\u00fc\u015f\u00fck <code>k1<\/code> de\u011ferleri, TF'nin skora katk\u0131s\u0131n\u0131n daha h\u0131zl\u0131 doygunlu\u011fa ula\u015fmas\u0131n\u0131 sa\u011flar, yani bir terimin birka\u00e7 kez ge\u00e7mesiyle bile maksimum katk\u0131ya ula\u015f\u0131l\u0131r. Y\u00fcksek <code>k1<\/code> de\u011ferleri ise, TF'nin skora katk\u0131s\u0131n\u0131n daha yava\u015f doygunlu\u011fa ula\u015fmas\u0131n\u0131 sa\u011flar, yani terimin \u00e7ok daha s\u0131k ge\u00e7mesi gerekir ki skora katk\u0131s\u0131 arts\u0131n. Atlas Search'te varsay\u0131lan <code>k1<\/code> de\u011feri genellikle 1.2'dir.<\/p>\n<h3>Atlas Search'te BM25 Uygulamas\u0131<\/h3>\n<p>Atlas Search, BM25 algoritmas\u0131n\u0131 temel alarak arama sonu\u00e7lar\u0131n\u0131 s\u0131ralar, ancak kullan\u0131c\u0131lar\u0131n bu s\u00fcreci \u00f6zelle\u015ftirmesine olanak tan\u0131yan g\u00fc\u00e7l\u00fc \u00f6zellikler sunar. Bu \u00f6zellikler, alaka d\u00fczeyini uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re ayarlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h4>Alan A\u011f\u0131rl\u0131kland\u0131rma (Field Weighting)<\/h4>\n<p>Atlas Search'te, farkl\u0131 alanlar\u0131n (field) arama skoruna katk\u0131s\u0131n\u0131 belirleyebilirsiniz. \u00d6rne\u011fin, bir \u00fcr\u00fcn\u00fcn ad\u0131nda ge\u00e7en bir anahtar kelimenin, a\u00e7\u0131klamas\u0131nda ge\u00e7en bir anahtar kelimeden daha \u00f6nemli oldu\u011funu d\u00fc\u015f\u00fcnebilirsiniz. Bunu <code>boost<\/code> se\u00e7ene\u011fi ile yapabilirsiniz:<\/p>\n<pre><code class=\"language-json\">{\n  \"$search\": {\n    \"text\": {\n      \"query\": \"ak\u0131ll\u0131 telefon\",\n      \"path\": {\n        \"value\": [\"name\", \"description\"],\n        \"multi\": {\n          \"name\": { \"weight\": 2 },\n          \"description\": { \"weight\": 1 }\n        }\n      }\n    }\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>name<\/code> alan\u0131ndaki e\u015fle\u015fmeler, <code>description<\/code> alan\u0131ndaki e\u015fle\u015fmelerden iki kat daha fazla skor katk\u0131s\u0131 sa\u011flar.<\/p>\n<h4>Boost Kullan\u0131m\u0131 ile Skorlar\u0131 Y\u00f6nlendirme<\/h4>\n<p><code>boost<\/code>, belirli bir sorgu teriminin veya alan\u0131n skorunu manuel olarak art\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu, belirli terimlerin veya alanlar\u0131n arama sonu\u00e7lar\u0131 \u00fczerinde daha b\u00fcy\u00fck bir etkiye sahip olmas\u0131n\u0131 istedi\u011finizde faydal\u0131d\u0131r. Boost, do\u011frudan sorgu operat\u00f6rleri i\u00e7inde veya indeks tan\u0131m\u0131nda belirtilebilir.<\/p>\n<pre><code class=\"language-json\">{\n  \"$search\": {\n    \"text\": {\n      \"query\": \"indirimli \u00fcr\u00fcnler\",\n      \"path\": \"tags\",\n      \"score\": {\n        \"boost\": {\n          \"value\": 5\n        }\n      }\n    }\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu sorgu, <code>tags<\/code> alan\u0131ndaki \"indirimli \u00fcr\u00fcnler\" e\u015fle\u015fmelerinin skorunu 5 kat art\u0131r\u0131r.<\/p>\n<h4>Analyzer'lar\u0131n Skor \u00dczerindeki Etkisi<\/h4>\n<p>Analyzer'lar, metni indeksleme ve sorgulama s\u0131ras\u0131nda i\u015fleyen bile\u015fenlerdir (k\u00fc\u00e7\u00fck harfe \u00e7evirme, k\u00f6k bulma, stop word kald\u0131rma vb.). Se\u00e7ti\u011finiz analyzer, terim s\u0131kl\u0131\u011f\u0131n\u0131 (TF) ve dolay\u0131s\u0131yla BM25 skorunu do\u011frudan etkiler. \u00d6rne\u011fin, \"running\" ve \"runs\" kelimelerini ayn\u0131 k\u00f6ke indirgeyen bir analyzer kullan\u0131rsan\u0131z, bu iki kelime ayn\u0131 terim olarak say\u0131l\u0131r ve TF de\u011ferine katk\u0131da bulunur. Yanl\u0131\u015f analyzer se\u00e7imi, alaka d\u00fczeyini d\u00fc\u015f\u00fcrebilir veya beklenmedik sonu\u00e7lara yol a\u00e7abilir.<\/p>\n<h3>Skor Optimizasyonu ve \u0130yile\u015ftirme Teknikleri<\/h3>\n<p>Atlas Search'te en iyi arama deneyimini sunmak i\u00e7in BM25 skorlar\u0131n\u0131 anlamak ve optimize etmek kritik \u00f6neme sahiptir. \u0130\u015fte uygulayabilece\u011finiz baz\u0131 teknikler:<\/p>\n<h4>Do\u011fru Analyzer Se\u00e7imi<\/h4>\n<p>Verilerinizin diline ve yap\u0131s\u0131na uygun bir analyzer se\u00e7mek, arama sonu\u00e7lar\u0131n\u0131n alaka d\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. \u00d6rne\u011fin, \u0130ngilizce metinler i\u00e7in <code>lucene.english<\/code>, T\u00fcrk\u00e7e metinler i\u00e7in <code>lucene.turkish<\/code> analyzer'lar\u0131n\u0131 kullanmak, k\u00f6k bulma (stemming) ve stop word kald\u0131rma gibi i\u015flemlerle daha do\u011fru e\u015fle\u015fmeler sa\u011flar. Kendi \u00f6zel analyzer'lar\u0131n\u0131z\u0131 tan\u0131mlayarak da daha hassas kontrol sa\u011flayabilirsiniz.<\/p>\n<h4>Synonym'ler ve Stop Word'ler<\/h4>\n<ul>\n<li><strong>Synonym'ler (E\u015f Anlaml\u0131lar):<\/strong> Kullan\u0131c\u0131lar\u0131n farkl\u0131 kelimelerle ayn\u0131 anlama gelen terimleri aramas\u0131na olanak tan\u0131r. \u00d6rne\u011fin, \"araba\" arand\u0131\u011f\u0131nda \"otomobil\" i\u00e7eren belgelerin de bulunmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, arama kapsam\u0131n\u0131 geni\u015fleterek alaka d\u00fczeyini art\u0131r\u0131r.<\/li>\n<li><strong>Stop Word'ler (Durak Kelimeler):<\/strong> \"ve\", \"bir\", \"ile\" gibi s\u0131k kullan\u0131lan ancak tek ba\u015f\u0131na anlam ta\u015f\u0131mayan kelimelerdir. Bu kelimeleri indeksleme ve sorgulama s\u0131ras\u0131nda kald\u0131rmak, daha anlaml\u0131 terimlerin TF ve IDF de\u011ferlerinin \u00f6ne \u00e7\u0131kmas\u0131n\u0131 sa\u011flayarak skorlamay\u0131 iyile\u015ftirir.<\/li>\n<\/ul>\n<h4>Custom Score (\u00d6zel Skorlama) \u0130mkanlar\u0131<\/h4>\n<p>Atlas Search, BM25'in yan\u0131 s\u0131ra kendi \u00f6zel skorlama mant\u0131\u011f\u0131n\u0131z\u0131 da uygulaman\u0131za olanak tan\u0131r. <code>function<\/code> operat\u00f6r\u00fc ile belirli alanlar\u0131n de\u011ferlerine (\u00f6rne\u011fin, \u00fcr\u00fcn\u00fcn pop\u00fclaritesi, yay\u0131n tarihi, fiyat\u0131) g\u00f6re skoru art\u0131rabilir veya azaltabilirsiniz. Bu, BM25'in sa\u011flad\u0131\u011f\u0131 metinsel alaka d\u00fczeyini, i\u015f mant\u0131\u011f\u0131n\u0131za \u00f6zg\u00fc metriklerle birle\u015ftirmenize olanak tan\u0131r.<\/p>\n<pre><code class=\"language-json\">{\n  \"$search\": {\n    \"text\": {\n      \"query\": \"en yeni \u00fcr\u00fcnler\",\n      \"path\": [\"title\", \"description\"]\n    },\n    \"score\": {\n      \"function\": {\n        \"multiply\": [\n          { \"score\": \"text\" },\n          { \"path\": { \"value\": \"popularity\", \"undefined\": 0 } }\n        ]\n      }\n    }\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, metin skorunu <code>popularity<\/code> alan\u0131n\u0131n de\u011feriyle \u00e7arparak nihai skoru hesaplar.<\/p>\n<h3>Pratik Bir \u00d6rnek ve Kod<\/h3>\n<p>\u015eimdi basit bir veri seti ve sorgu \u00fczerinden Atlas Search'\u00fcn BM25 skorunu nas\u0131l uygulad\u0131\u011f\u0131n\u0131 g\u00f6relim.<\/p>\n<h4>\u00d6rnek Veri Seti<\/h4>\n<pre><code class=\"language-json\">[\n  { \"_id\": 1, \"title\": \"Ak\u0131ll\u0131 Telefon \u0130ncelemesi\", \"description\": \"En yeni ak\u0131ll\u0131 telefon modellerinin detayl\u0131 incelemesi.\", \"popularity\": 5 },\n  { \"_id\": 2, \"title\": \"Telefon Aksesuarlar\u0131\", \"description\": \"Her t\u00fcrl\u00fc telefon i\u00e7in aksesuarlar.\", \"popularity\": 3 },\n  { \"_id\": 3, \"title\": \"Tablet ve Ak\u0131ll\u0131 Cihazlar\", \"description\": \"Ak\u0131ll\u0131 cihazlar d\u00fcnyas\u0131ndaki yenilikler.\", \"popularity\": 4 }\n]<\/pre>\n<p><\/code><\/p>\n<h4>Basit Bir Atlas Search Sorgusu<\/h4>\n<p><code>\"ak\u0131ll\u0131 telefon\"<\/code> sorgusu i\u00e7in bir arama yapal\u0131m:<\/p>\n<pre><code class=\"language-json\">{\n  \"$search\": {\n    \"text\": {\n      \"query\": \"ak\u0131ll\u0131 telefon\",\n      \"path\": [\"title\", \"description\"]\n    },\n    \"highlight\": {\n      \"path\": [\"title\", \"description\"]\n    }\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu sorgu, her belge i\u00e7in bir <code>score<\/code> de\u011feri d\u00f6nd\u00fcrecektir. Belgeler, BM25 algoritmas\u0131na g\u00f6re bu skorlara g\u00f6re s\u0131ralanacakt\u0131r. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><strong>Belge 1:<\/strong> \"Ak\u0131ll\u0131 Telefon \u0130ncelemesi\", \"En yeni ak\u0131ll\u0131 telefon modellerinin detayl\u0131 incelemesi.\" - Hem ba\u015fl\u0131kta hem de a\u00e7\u0131klamada \"ak\u0131ll\u0131 telefon\" ge\u00e7iyor ve terim s\u0131kl\u0131\u011f\u0131 y\u00fcksek. Bu belge en y\u00fcksek skoru alacakt\u0131r.<\/li>\n<li><strong>Belge 3:<\/strong> \"Tablet ve Ak\u0131ll\u0131 Cihazlar\", \"Ak\u0131ll\u0131 cihazlar d\u00fcnyas\u0131ndaki yenilikler.\" - Sadece \"ak\u0131ll\u0131\" kelimesi ge\u00e7iyor, \"telefon\" yok. Skoru Belge 1'den d\u00fc\u015f\u00fck olacakt\u0131r.<\/li>\n<li><strong>Belge 2:<\/strong> \"Telefon Aksesuarlar\u0131\", \"Her t\u00fcrl\u00fc telefon i\u00e7in aksesuarlar.\" - Sadece \"telefon\" kelimesi ge\u00e7iyor, \"ak\u0131ll\u0131\" yok. Skoru Belge 1'den daha d\u00fc\u015f\u00fck, Belge 3'e yak\u0131n veya ondan farkl\u0131 olacakt\u0131r, zira \"ak\u0131ll\u0131\" ve \"telefon\" terimlerinin IDF de\u011ferleri farkl\u0131d\u0131r.<\/li>\n<\/ul>\n<h4>Skorun Bile\u015fenlerini Anlama<\/h4>\n<p>Atlas Search, her bir terimin (<code>ak\u0131ll\u0131<\/code>, <code>telefon<\/code>) her belgedeki TF ve IDF de\u011ferlerini hesaplar. Belge uzunluklar\u0131 (<code>|D|<\/code>) ve koleksiyonun ortalama belge uzunlu\u011fu (<code>avgdl<\/code>) da dikkate al\u0131n\u0131r. Varsay\u0131lan <code>k1<\/code> ve <code>b<\/code> parametreleri kullan\u0131larak her terimin skora katk\u0131s\u0131 hesaplan\u0131r ve toplanarak nihai BM25 skoru elde edilir. Sorgu terimlerinin ge\u00e7ti\u011fi alanlara uygulanan <code>boost<\/code> de\u011ferleri de bu hesaplamaya dahil edilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>MongoDB Atlas Search'\u00fcn temelini olu\u015fturan BM25 algoritmas\u0131, modern arama motorlar\u0131n\u0131n kalbinde yer alan g\u00fc\u00e7l\u00fc ve esnek bir alaka d\u00fczeyi skorlama y\u00f6ntemidir. Terim s\u0131kl\u0131\u011f\u0131, ters belge s\u0131kl\u0131\u011f\u0131, belge uzunlu\u011fu normalizasyonu ve ayarlanabilir parametreler sayesinde, kullan\u0131c\u0131 sorgular\u0131na en uygun sonu\u00e7lar\u0131 sunar. Atlas Search, BM25'i varsay\u0131lan olarak kullan\u0131rken, alan a\u011f\u0131rl\u0131kland\u0131rma, boost ve \u00f6zel skorlama fonksiyonlar\u0131 gibi \u00f6zelliklerle bu algoritmay\u0131 uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirmenize olanak tan\u0131r.<\/p>\n<p>BM25'in detaylar\u0131n\u0131 ve Atlas Search'teki uygulama \u015fekillerini anlamak, arama sonu\u00e7lar\u0131n\u0131z\u0131n alaka d\u00fczeyini art\u0131rmak ve kullan\u0131c\u0131 deneyimini optimize etmek i\u00e7in kritik \u00f6neme sahiptir. Do\u011fru analyzer se\u00e7imi, synonym'lerin kullan\u0131m\u0131 ve stratejik boost uygulamalar\u0131 ile Atlas Search'\u00fcn tam potansiyelini ortaya \u00e7\u0131karabilirsiniz.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<dl>\n<dt><strong>Atlas Search neden BM25 kullan\u0131yor?<\/strong><\/dt>\n<dd>BM25, bilgi eri\u015fim alan\u0131nda y\u0131llard\u0131r kendini kan\u0131tlam\u0131\u015f, y\u00fcksek performansl\u0131 ve end\u00fcstri standard\u0131 bir algoritmad\u0131r. Hem basitli\u011fi hem de karma\u015f\u0131k alaka d\u00fczeyi senaryolar\u0131n\u0131 ele alma yetene\u011fi nedeniyle tercih edilir.<\/dd>\n<dt><strong>BM25 skorunu manuel olarak de\u011fi\u015ftirebilir miyim?<\/strong><\/dt>\n<dd>Do\u011frudan BM25 form\u00fcl\u00fcn\u00fc de\u011fi\u015ftiremezsiniz, ancak Atlas Search'teki <code>boost<\/code>, <code>function<\/code> operat\u00f6rleri ve alan a\u011f\u0131rl\u0131kland\u0131rma (field weighting) gibi \u00f6zelliklerle skorun hesaplanma \u015feklini ve nihai de\u011ferini etkileyebilirsiniz.<\/dd>\n<dt><strong>k1 ve b parametrelerini Atlas Search'te nas\u0131l ayarlar\u0131m?<\/strong><\/dt>\n<dd>Atlas Search, bu parametreler i\u00e7in varsay\u0131lan de\u011ferler kullan\u0131r (genellikle k1=1.2, b=0.75). Mevcut durumda bu parametreleri do\u011frudan sorgu veya indeks tan\u0131m\u0131 \u00fczerinden ayarlama imkan\u0131 bulunmamaktad\u0131r. Ancak, <code>boost<\/code> ve <code>function<\/code> operat\u00f6rleri ile benzer etkiyi farkl\u0131 yollarla elde edebilirsiniz.<\/dd>\n<dt><strong>Analyzer se\u00e7imi BM25 skorunu nas\u0131l etkiler?<\/strong><\/dt>\n<dd>Analyzer'lar, metni indeksleme ve sorgulama s\u0131ras\u0131nda i\u015fleyerek (token'lara ay\u0131rma, k\u00f6k bulma vb.) terim s\u0131kl\u0131\u011f\u0131n\u0131 (TF) ve dolay\u0131s\u0131yla BM25 skorunu do\u011frudan etkiler. Do\u011fru analyzer, alakal\u0131 terimlerin e\u015fle\u015fmesini sa\u011flayarak skoru art\u0131r\u0131r.<\/dd>\n<dt><strong>Birden fazla alan \u00fczerinde arama yaparken skor nas\u0131l hesaplan\u0131r?<\/strong><\/dt>\n<dd>Atlas Search, her bir alan i\u00e7in ayr\u0131 ayr\u0131 BM25 skorlar\u0131 hesaplar ve bu skorlar\u0131 birle\u015ftirir. Alan a\u011f\u0131rl\u0131kland\u0131rma (field weighting) kullanarak belirli alanlar\u0131n skora katk\u0131s\u0131n\u0131 art\u0131rabilir veya azaltabilirsiniz.<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"Modern uygulamalarda kullan\u0131c\u0131lar, arama kutusuna yazd\u0131klar\u0131 sorgular\u0131n en do\u011fru ve alakal\u0131 sonu\u00e7lar\u0131n\u0131 an\u0131nda beklerler. MongoDB Atlas Search, bu&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-36570","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Atlas Search&#039;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Atlas Search&#039;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi\" \/>\n<meta property=\"og:description\" content=\"Modern uygulamalarda kullan\u0131c\u0131lar, arama kutusuna yazd\u0131klar\u0131 sorgular\u0131n en do\u011fru ve alakal\u0131 sonu\u00e7lar\u0131n\u0131 an\u0131nda beklerler. MongoDB Atlas Search, bu...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T22:30:40+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi\",\"datePublished\":\"2025-12-19T22:30:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\"},\"wordCount\":2469,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\",\"name\":\"Atlas Search'te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-19T22:30:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Atlas Search'te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/","og_locale":"tr_TR","og_type":"article","og_title":"Atlas Search'te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi","og_description":"Modern uygulamalarda kullan\u0131c\u0131lar, arama kutusuna yazd\u0131klar\u0131 sorgular\u0131n en do\u011fru ve alakal\u0131 sonu\u00e7lar\u0131n\u0131 an\u0131nda beklerler. MongoDB Atlas Search, bu...","og_url":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-19T22:30:40+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi","datePublished":"2025-12-19T22:30:40+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/"},"wordCount":2469,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/","url":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/","name":"Atlas Search'te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-19T22:30:40+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/atlas-searchte-arama-skorlari-bm25-algoritmasinin-derinlemesine-incelenmesi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Atlas Search&#8217;te Arama Skorlar\u0131: BM25 Algoritmas\u0131n\u0131n Derinlemesine \u0130ncelenmesi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36570"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36570\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}