Rapor Adı:23.08.2016 Tarihli Rapor Projenin Amacı: Full Text Search Engine, Apache Lucene, LMS Araştırmayı ve Sunuyu Ferhat Yeşilyurt hazırlamıştır.
Full Text Search Engine (Tüm Metinde Arama Motoru) İlk olarak Full Text Search mimarisi neden ortaya çıktığından bahsedelim. Sql Server da arama işlemlerinde çoğunlukla like ifadesi(expression) kullanılır. Fakat like ifadesi aradığımız metin büyüdükçe performansında düşme göstermektedir. Küçük çaplı veritabanlarında like ifadesi ile istediklerimizi tabiki de yapabiliriz ama veritabanındaki veriler on binlerin üstündeyse Full Text Search mimarisi bize gözle görülür bir fark yaratacaktır. Burada data sayısı daha az olan tablolar üzerinden Sql de like operatörü kullanılarak arama işlemleri gerçekleştirilmiştir.bu işlemlerde data sayısı az olduğundan arama zamanı kısmında sıkıntılar çekilmeyecektir ama verilerin sayısında olan artışlar sonucunda buradaki arama zamanı artacak olup oluşan gecikmeler sonucunda işlemleri geç bir şekilde yapılmasını sağlayacaktır.
Karakter içerikli kolonlarda "nvarchar varchar" gibi tiplerde max değerini verdiğimizde 2 Gb ta kadar veri arşivlenebiliyor. Bu yüzden bu tarz kolonlarımızda hızlı arama yapabilmek için full-text search mimarisi de bize kolaylık sağlamıştır. Full-text search Sql server 2008 öncesinde bağımsız olarak çalışmaktaydı sonrasında ise veritabanıyla birlikte tutulmakta ve "Sql Full Text Filter Deamon Launcher" olarak hizmet vermektedir. Önemli bir noktaya daha belirtmek gerekir ki bir tabloda sadece bir tane full-text index oluşturulabiliriz ve o tablodaki kolon ya da kolonları yapacağımız aramada rahatlıkla kullanabiliriz.full-text search mimarisinin kullanıldığı veri tipleri Sql' de şunlardır: char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary(max) ve FILESTREAM. PostgreSQL' de Full Text Search işlemleri yapmak için index belirtmemiz lazım, ayrıca tablodaki sütunları birbirine concatenate' de yapabiliriz. FTS Mimarisi Full-text search mimarisi 3 adımda oluşturabiliriz. Full-text katalogu Full-text index oluşturma Full-text index içeriğinin oluşması
Apache Lucene Apache Lucene, full text search işlemlerini yerine getirebilmek için, geliştirilmiş bir açık kaynak kodlu kütüphanedir. Kısaca verileri indexler ve üzerinde aramalar yapar. Tabi bu basit tanımı. Biz ona indexlenecek veriyi yolluyoruz, o da indexleyip, bu indexlere göre arama yapmamızı sağlıyor. İstediğimiz kadar alan üzerinde indexleme yaptırabiliyoruz. Java tabanlı indeksleme ve arama implementasyonu sağlar. Ek olarak ta yazım kontrolü,hit highlighting ve gelişmiş analiz ve tokenization özellikleri barındırır.
Tek başına sistemlerde bir sorun yok fakat dağıtık sistemlerde maalesef indexleme ve arama yapamıyor.bu karışıklığı önlemek amacıyla Apache Zookeeper diye bir uygulama çıkarılmış. Solr, Apache Lucene arama kütüphanesi üzerine kurulu Java ile geliştirilmiş, arama konusundaki yetenekleri ile ön plana çıkan açık kaynak kodlu, Tomcat ve Jetty gibi sunucular üzerinde run edilebilir bir Apache ürünüdür. Apache Zookeeper Zookeeper, dağıtık yapıda olan servislerin koordine edilmesi için geliştirilmiş "kendisi de dağıtık yapıda çalışan" bir uygulamadır. Yaygın olarak kullanılan ve Zookeeper ın sitesinde uygulama örnekleri bulunan bazı servisler için listeye göz atabiliriz. Tabi ki Zookeeper ın kullanım alanları bunlarla sınırlamak doğru olmaz.
İki aşamalı commit, Two-phase commit protocol (2PC); Tek bir veritabanı üzerinde yapılan transaction işleminin birden çok kaynak üzerinde yapılmasına olanak sağlayan bir özellik/standart. Locks / Shared Locks; Bir nesneyi kullanıma tamamen kapatmak olarak tanımlayabileceğimiz lock özelliğine, veritabanlarının satır seviyesinde kilitleme (row level lock) örnek olarak verilebilir. Shared lock içinse; sadece okuma veya sadece yazma kilidi gibi örnekler verilebilir. Queues; Aslında kilit ve izleme (lock ve watch) implementasyonları içeren birçok yazılımda olduğu gibi Zookeeper üzerinde de mesaj kuyruğu oluşturmak mümkün. Barriers / Double Barriers; Kilit özelliğinin aksine bariyer (barrier) kullanımında, adından da anlaşılacağı üzere, hiç bir işlemin yapılmamasını için engel konulmasıdır. Yani kilit özelliğinde aynı anda bir işlem ya da istemci (client) çalışabiliyorken, bariyer kullanıldığında tüm işlem veya istemciler bekletiliyor. Lider seçimi, Leader Election; Günümüz uygulamalarında halen tercih edilmekle birlikte artık yetersiz kalan master-slave yapısının yerine master-free yapı kurulmasını sağlayan, otomatik lider (master) seçimine imkan veren bir özelliktir. Bu sayede hem sisteminizin tek bir noktaya bağımlılığı (SPOF, single point of failure) ortadan kalkıyor hem de, lider (master) değişimi gibi bir zaman kaybı (down time) ve operasyona ihtiyaç duyulmamış oluyor. Konfigürasyon yönetimi; Özellikle Apache Solr ın da kullandığı bir yöntem olan bu pratik, dağıtık yapıda çalışan servislerinizin konfigürasyonlarını tek bir noktadan ve çok hızlı şekilde yönetmenizi sağlıyor.
Alternatifler.Net için DotLucene.Net vardır. Apache Solr (Yönetimi kısmında biraz karışık olduğundan bahsedilir.) ElasticSearch Java ile geliştirilmiş açık kaynak, Lucene tabanlı, ölçeklenebilir bir tam metin(full text) arama motoru ve veri analiz aracıdır. Apache Mahout' unda piyasada azımsanmayacak ölçüde taraftarı vardır.hadoop' un geçileceği forum konuşmalar arasında gözlemlendi. BaseX Clusterpoint Database DataparkSearch ht://dig KinoSearch Lemur/Indri mnogosearch Searchdaimon, Sphinx, Swish-e, Xapian
Apache Lucene Apache Lucene kurulumu yaptıktan sonra indirmiş olduğumuz dosya sisteminde docs/index.html sayfasına girip sistemin ara yüzüne girmiş bulunmaktayız burada Tutorial' leri takip ederek sistem hakkında bilgi sahibi olabilir ve genel kullanımı hakkında bilgi sahibi olabiliriz. Learning Management System(LMS) Lms kısaltmasının açılımı İngilizce " Learning Management System" şeklindedir. Learning Management System kavramı Türkçe' de "Öğrenme Yönetim Sistemi" anlamına gelmektedir. Bilgisayarların eğitim alanında kullanılma sürecine bakılırsa bilgisayar tabanlı öğretim, bilgisayar destekli öğretim, bilgisayar destekli öğrenim,internet tabanlı öğrenme gibi kavramlarla karşılamaktadır. Bunlar daha çok bireysel öğrenmeye / öğretime yönelik ve bir konuya özgü öğrenme kaynaklarıdırlar.öğrenme yönetim sistemi ise adından da anlaşılacağı üzere bir yönetim aracıdır ve eğitim içeriklerinin yönetimine, öğrenenler ve öğretenlerin izlenmesine,öğrenme öğretme süreçlerinin bireyselleştirilebilmesine olanak sağlayan
bütünleşik bir sistemdir. Lms ve diğer bilgisayar terimlerinin arasındaki temel fark Lms nin bütün eğitim öğretim sürecini doğası gereği sistematik bir yaklaşımla kapsamasıdır. Lms Amacı Lms' lerin amacı, e-öğrenme faaliyetlerini kolaylaştırmak ve daha sistematik, planlı bir şekilde gerçekleştirmektir. Lms' lerin işlevleri 1. Öğrenme materyali sunma, 2. Sunulan öğrenme materyalini paylaşma ve tartışma, 3. Dersleri yönetme, 4. Ödev alma, 5. Sınavlara girme, 6. Ödev ve sınavlara ilişkin geribildirim sağlama, 7. Öğrenme materyallerini düzenleme, 8. Öğrenci,öğretmen ve sistem kayıtlarını tutma, raporlar alma gibi işlevleri sağlarlar. Ticari Lms Yazılımları 1. ANGEL Learning 2. Blackboard 3. Desire2Learn 4. ecollege 5. Webct 6. it's learning 7. elea
Açık Kaynak Kodlu Lms Yazılımları 1. ATutor 2. Claroline 3. Dokeos 4. efront 5. Fle3 6. ILIAS 7. LON-CAPA 8.Moodle 9. OLAT 10. estudy Dumlupınar Üniversitesi Bilgisayar Mühendisliği bölümü Moodle sistemini kullanmaktadır. Üniversiteler UZEM diye kendi sistemlerini kullanıyorlar.ana geliştiriciler üniversiteler olmakta.