Apache Solr - Hızlı Kılavuz
Solr oluşturmak için kullanılan açık kaynaklı bir arama platformudur search applications. Üzerine inşa edildiLucene(tam metin arama motoru). Solr, kurumsal kullanıma hazırdır, hızlıdır ve yüksek oranda ölçeklenebilir. Solr kullanılarak oluşturulan uygulamalar karmaşıktır ve yüksek performans sağlar.
Öyleydi Yonik SeelyCNET Networks'ün şirket web sitesine arama yetenekleri eklemek için 2004 yılında Solr'ı kurdu. Ocak 2006'da Apache Yazılım Vakfı altında açık kaynaklı bir proje yapıldı. En son sürümü olan Solr 6.0, paralel SQL sorgularının yürütülmesi desteği ile 2016 yılında piyasaya sürüldü.
Solr, Hadoop ile birlikte kullanılabilir. Hadoop büyük miktarda veriyi işlediğinden, Solr gerekli bilgileri bu kadar büyük bir kaynaktan bulmamıza yardımcı oluyor. Solr sadece arama değil, aynı zamanda depolama amacıyla da kullanılabilir. Diğer NoSQL veritabanları gibi, birnon-relational data storage ve processing technology.
Kısaca Solr, büyük hacimli metin merkezli verileri aramak için optimize edilmiş ölçeklenebilir, dağıtıma hazır bir arama / depolama motorudur.
Apache Solr'un Özellikleri
Solr, Lucene'nin Java API'sinin etrafını sarıyor. Bu nedenle, Solr kullanarak Lucene'nin tüm özelliklerinden yararlanabilirsiniz. Solr'un en belirgin özelliklerinden bazılarına bir göz atalım -
Restful APIs- Solr ile iletişim kurmak için Java programlama becerisine sahip olmak zorunlu değildir. Onun yerine onunla iletişim kurmak için dinlendirici hizmetleri kullanabilirsiniz. XML, JSON ve .CSV gibi dosya formatlarında Solr'a belgeler giriyor ve sonuçları aynı dosya formatlarında alıyoruz.
Full text search - Solr, belirteçler, ifadeler, yazım denetimi, joker karakter ve otomatik tamamlama gibi tam metin araması için gereken tüm yetenekleri sağlar.
Enterprise ready - Solr, organizasyonun ihtiyacına göre bağımsız, dağıtılmış, bulut vb. Her türlü sistemde (büyük veya küçük) konuşlandırılabilir.
Flexible and Extensible - Java sınıflarını genişleterek ve buna göre yapılandırarak Solr bileşenlerini kolayca özelleştirebiliriz.
NoSQL database - Solr, arama görevlerini bir küme boyunca dağıtabileceğimiz büyük veri ölçekli NOSQL veritabanı olarak da kullanılabilir.
Admin Interface - Solr, günlükleri yönetme, ekleme, silme, güncelleme ve belge arama gibi tüm olası görevleri gerçekleştirebileceğimiz, kullanımı kolay, kullanıcı dostu, özelliklerle güçlendirilmiş bir kullanıcı arayüzü sağlar.
Highly Scalable - Solr'ı Hadoop ile kullanırken replikalar ekleyerek kapasitesini ölçeklendirebiliriz.
Text-Centric and Sorted by Relevance - Solr çoğunlukla metin belgelerini aramak için kullanılır ve sonuçlar, kullanıcının sorgusuyla alaka düzeyine göre sırayla teslim edilir.
Lucene'den farklı olarak, Apache Solr ile çalışırken Java programlama becerilerine sahip olmanıza gerek yoktur. Lucene'nin sağlamadığı otomatik tamamlamayı içeren bir arama kutusu oluşturmak için harika bir dağıtıma hazır hizmet sağlar. Solr kullanarak, büyük ölçekli (Büyük Veri) uygulamalar için indeksi ölçeklendirebilir, dağıtabilir ve yönetebiliriz.
Arama Uygulamalarında Lucene
Lucene, basit ama güçlü Java tabanlı arama kitaplığıdır. Arama yeteneği eklemek için herhangi bir uygulamada kullanılabilir. Lucene, neredeyse her tür metni dizine eklemek ve aramak için kullanılan, ölçeklenebilir ve yüksek performanslı bir kitaplıktır. Lucene kitaplığı, herhangi bir arama uygulaması için gerekli olan temel işlemleri sağlar.Indexing ve Searching.
Büyük miktarda veriye sahip bir web portalımız varsa, büyük olasılıkla büyük veri havuzundan ilgili bilgileri çıkarmak için portalımızda bir arama motoruna ihtiyaç duyacağız. Lucene, herhangi bir arama uygulamasının kalbi olarak çalışır ve indeksleme ve aramayla ilgili hayati işlemleri sağlar.
Arama Motoru, web sayfaları, haber grupları, programlar, resimler vb. Gibi büyük bir İnternet kaynakları veritabanını ifade eder. World Wide Web'de bilgilerin bulunmasına yardımcı olur.
Kullanıcılar, sorguları Arama Motoruna anahtar sözcükler veya tümcecikler biçiminde ileterek bilgi arayabilirler. Arama Motoru daha sonra veritabanında arama yapar ve kullanıcıya ilgili bağlantıları döndürür.
Arama Motoru Bileşenleri
Genel olarak, bir arama motorunun aşağıda listelendiği gibi üç temel bileşeni vardır -
Web Crawler - Web tarayıcıları aynı zamanda spiders veya bots. Bilgi toplamak için internette dolaşan bir yazılım bileşenidir.
Database- Web'deki tüm bilgiler veri tabanlarında saklanır. Çok sayıda web kaynağı içerirler.
Search Interfaces- Bu bileşen, kullanıcı ve veritabanı arasındaki bir arayüzdür. Kullanıcının veritabanında arama yapmasına yardımcı olur.
Arama Motorları Nasıl Çalışır?
Aşağıdaki işlemlerin bir kısmını veya tamamını gerçekleştirmek için herhangi bir arama uygulaması gereklidir.
Adım | Başlık | Açıklama |
---|---|---|
1 |
Ham İçeriği Edin |
Herhangi bir arama uygulamasının ilk adımı, aramanın gerçekleştirileceği hedef içeriği toplamaktır. |
2 |
Belgeyi oluşturun |
Bir sonraki adım, arama uygulamasının kolayca anlayabileceği ve yorumlayabileceği ham içeriklerden belge (ler) oluşturmaktır. |
3 |
Belgeyi analiz edin |
İndeksleme başlamadan önce belge analiz edilmelidir. |
4 |
Belgeyi indeksleme |
Belgeler oluşturulduktan ve analiz edildikten sonra, bir sonraki adım, bu belgenin belgenin tüm içeriği yerine belirli anahtarlara dayalı olarak geri alınabilmesi için onları dizine almaktır. İndeksleme, kitabın tamamında arama yapmak yerine bu kelimelerin hızlı bir şekilde izlenebilmesi için yaygın kelimelerin sayfa numaralarıyla gösterildiği bir kitabın sonunda sahip olduğumuz indekslere benzer. |
5 |
Arama için Kullanıcı Arayüzü |
Bir dizin veritabanı hazır olduğunda, uygulama arama işlemlerini gerçekleştirebilir. Kullanıcının arama yapmasına yardımcı olmak için uygulama, kullanıcının metin girebileceği ve arama sürecini başlatabileceği bir kullanıcı arayüzü sağlamalıdır. |
6 |
Sorgu Oluştur |
Kullanıcı bir metni aramak için bir talepte bulunduğunda, uygulama bu metni kullanarak bir sorgu nesnesi hazırlamalıdır, bu daha sonra ilgili ayrıntıları almak için dizin veritabanını sorgulamak için kullanılabilir. |
7 |
Arama Sorgusu |
Sorgu nesnesini kullanarak, ilgili ayrıntıları ve içerik belgelerini almak için indeks veritabanı kontrol edilir. |
8 |
Sonuçları Oluştur |
Gerekli sonuç alındığında, uygulama, Kullanıcı Arayüzünü kullanarak sonuçların kullanıcıya nasıl görüntüleneceğine karar vermelidir. |
Aşağıdaki resme bir göz atın. Arama Motorlarının nasıl çalıştığının genel bir görünümünü gösterir.
Bu temel işlemlerin yanı sıra, arama uygulamaları, yöneticilerin kullanıcı profillerine dayalı arama düzeyini kontrol etmelerine yardımcı olmak için yönetim-kullanıcı arabirimi de sağlayabilir. Arama sonucunun analizi, herhangi bir arama uygulamasının bir başka önemli ve gelişmiş yönüdür.
Bu bölümde, Windows ortamında Solr'ın nasıl kurulacağını tartışacağız. Solr'ı Windows sisteminize kurmak için aşağıda verilen adımları izlemeniz gerekir -
Apache Solr ana sayfasını ziyaret edin ve indirme düğmesine tıklayın.
Apache Solr indeksini almak için aynalardan birini seçin. Oradan adlı dosyayı indirinSolr-6.2.0.zip.
Dosyayı şuradan taşıyın: downloads folder gerekli dizine getirin ve açın.
Solr dosyasını indirdiğinizi ve C sürücüsüne çıkardığınızı varsayalım. Böyle bir durumda, Solr'ı aşağıdaki ekran görüntüsünde gösterildiği gibi başlatabilirsiniz.
Kurulumu doğrulamak için tarayıcınızda aşağıdaki URL'yi kullanın.
http://localhost:8983/
Kurulum işlemi başarılı olursa, aşağıda gösterildiği gibi Apache Solr kullanıcı arayüzünün kontrol panelini göreceksiniz.
Java Ortamını Ayarlama
Java kitaplıklarını kullanarak Apache Solr ile de iletişim kurabiliriz; ancak Solr'a Java API kullanarak erişmeden önce, bu kitaplıklar için sınıf yolunu ayarlamanız gerekir.
Sınıf Yolunu Ayarlama
Yı kur classpath Solr kitaplıklarına .bashrcdosya. Açık.bashrc aşağıda gösterildiği gibi herhangi bir editörde.
$ gedit ~/.bashrc
Solr kitaplıkları için sınıf yolu ayarlayın (lib HBase'deki klasör) aşağıda gösterildiği gibi.
export CLASSPATH = $CLASSPATH://home/hadoop/Solr/lib/*
Bu, Java API kullanarak HBase'e erişirken "sınıf bulunamadı" istisnasını önlemek içindir.
Solr, Hadoop ile birlikte kullanılabilir. Hadoop büyük miktarda veriyi işlediğinden, Solr gerekli bilgileri bu kadar büyük bir kaynaktan bulmamıza yardımcı oluyor. Bu bölümde, Hadoop'u sisteminize nasıl kurabileceğinizi öğrenelim.
Hadoop'u indirme
Hadoop'u sisteminize indirmek için izlenecek adımlar aşağıda verilmiştir.
Step 1- Hadoop'un ana sayfasına gidin. Bağlantıyı kullanabilirsiniz - www.hadoop.apache.org/ . Linke tıklayınızReleases, aşağıdaki ekran görüntüsünde vurgulandığı gibi.
Sizi şuraya yönlendirecek Apache Hadoop Releases Hadoop'un çeşitli sürümlerinin kaynak ve ikili dosyalarının aynalarının bağlantılarını içeren sayfa aşağıdaki gibidir -
Step 2 - Hadoop'un en son sürümünü seçin (eğitimimizde 2.6.4'tür) ve binary link. Sizi Hadoop ikili programının aynalarının bulunduğu bir sayfaya götürecektir. Hadoop'u indirmek için bu aynalardan birine tıklayın.
Hadoop'u Komut İsteminden İndirin
Linux terminalini açın ve süper kullanıcı olarak oturum açın.
$ su
password:
Hadoop'u kurmanız gereken dizine gidin ve aşağıdaki kod bloğunda gösterildiği gibi, daha önce kopyalanan bağlantıyı kullanarak dosyayı buraya kaydedin.
# cd /usr/local
# wget http://redrockdigimark.com/apachemirror/hadoop/common/hadoop-
2.6.4/hadoop-2.6.4.tar.gz
Hadoop'u indirdikten sonra, aşağıdaki komutları kullanarak onu çıkarın.
# tar zxvf hadoop-2.6.4.tar.gz
# mkdir hadoop
# mv hadoop-2.6.4/* to hadoop/
# exit
Hadoop'u Yükleme
Yüklemek için aşağıda verilen adımları izleyin Hadoop sözde dağıtılmış modda.
1. Adım: Hadoop'u Kurma
Aşağıdaki komutları ekleyerek Hadoop ortam değişkenlerini ayarlayabilirsiniz. ~/.bashrc dosya.
export HADOOP_HOME = /usr/local/hadoop export
HADOOP_MAPRED_HOME = $HADOOP_HOME export
HADOOP_COMMON_HOME = $HADOOP_HOME export
HADOOP_HDFS_HOME = $HADOOP_HOME export
YARN_HOME = $HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR = $HADOOP_HOME/lib/native
export PATH = $PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL = $HADOOP_HOME
Ardından, tüm değişiklikleri mevcut çalışan sisteme uygulayın.
$ source ~/.bashrc
2. Adım: Hadoop Yapılandırması
Tüm Hadoop yapılandırma dosyalarını “$ HADOOP_HOME / etc / hadoop” konumunda bulabilirsiniz. Bu yapılandırma dosyalarında Hadoop altyapınıza göre değişiklik yapmanız gerekir.
$ cd $HADOOP_HOME/etc/hadoop
Java'da Hadoop programları geliştirmek için, Java ortam değişkenlerini sıfırlamanız gerekir. hadoop-env.sh değiştirerek dosya JAVA_HOME sisteminizdeki Java konumu ile değer.
export JAVA_HOME = /usr/local/jdk1.7.0_71
Hadoop'u yapılandırmak için düzenlemeniz gereken dosyaların listesi aşağıdadır -
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
core-site.xml
core-site.xml dosyası, Hadoop örneği için kullanılan bağlantı noktası numarası, dosya sistemi için ayrılan bellek, verileri depolamak için bellek sınırı ve Okuma / Yazma arabelleklerinin boyutu gibi bilgileri içerir.
Core-site.xml dosyasını açın ve aşağıdaki özellikleri <configuration>, </configuration> etiketlerinin içine ekleyin.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
hdfs-site.xml dosya, çoğaltma verilerinin değeri gibi bilgileri içerir, namenode yol ve datanodeyerel dosya sistemlerinizin yolları. Hadoop altyapısını depolamak istediğiniz yer anlamına gelir.
Aşağıdaki verileri varsayalım.
dfs.replication (data replication value) = 1
(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
Bu dosyayı açın ve <configuration>, </configuration> etiketlerinin içine aşağıdaki özellikleri ekleyin.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
</property>
</configuration>
Note - Yukarıdaki dosyada tüm özellik değerleri kullanıcı tanımlıdır ve Hadoop altyapınıza göre değişiklik yapabilirsiniz.
yarn-site.xml
Bu dosya, ipliği Hadoop'ta yapılandırmak için kullanılır. İplik-site.xml dosyasını açın ve bu dosyadaki <configuration>, </configuration> etiketleri arasına aşağıdaki özellikleri ekleyin.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml
Bu dosya hangi MapReduce çerçevesini kullandığımızı belirtmek için kullanılır. Varsayılan olarak, Hadoop bir iplik-site.xml şablonu içerir. Öncelikle dosyanın kopyalanması gerekir.mapred-site,xml.template -e mapred-site.xml aşağıdaki komutu kullanarak dosya.
$ cp mapred-site.xml.template mapred-site.xml
Açık mapred-site.xml dosyasını açın ve <configuration>, </configuration> etiketlerinin içine aşağıdaki özellikleri ekleyin.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Hadoop Kurulumunu Doğrulama
Aşağıdaki adımlar Hadoop kurulumunu doğrulamak için kullanılır.
Adım 1: Düğüm Kurulumu Adlandırın
"Hdfs namenode –format" komutunu kullanarak ad kodunu aşağıdaki gibi ayarlayın.
$ cd ~
$ hdfs namenode -format
Beklenen sonuç aşağıdaki gibidir.
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.6.4
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to retain 1
images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/
2. Adım: Hadoop dfs'yi doğrulama
Aşağıdaki komut Hadoop dfs'yi başlatmak için kullanılır. Bu komutu çalıştırmak Hadoop dosya sisteminizi başlatacaktır.
$ start-dfs.sh
Beklenen çıktı aşağıdaki gibidir -
10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-2.6.4/logs/hadoop-
hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-2.6.4/logs/hadoop-
hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
Adım 3: İplik Komut Dosyasını Doğrulama
İplik komut dosyasını başlatmak için aşağıdaki komut kullanılır. Bu komutu yürütmek İplik şeytanlarınızı başlatacaktır.
$ start-yarn.sh
Beklenen çıktı aşağıdaki gibidir -
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.6.4/logs/yarn-
hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-
2.6.4/logs/yarn-hadoop-nodemanager-localhost.out
4. Adım: Tarayıcıda Hadoop'a Erişim
Hadoop'a erişmek için varsayılan bağlantı noktası numarası 50070'tir. Tarayıcıda Hadoop hizmetlerini almak için aşağıdaki URL'yi kullanın.
http://localhost:50070/
Solr'ı Hadoop'a Kurmak
Solr'ı indirmek ve kurmak için aşağıda verilen adımları izleyin.
Aşama 1
Aşağıdaki bağlantıya tıklayarak Apache Solr ana sayfasını açın - https://lucene.apache.org/solr/
Adım 2
Tıkla download button(yukarıdaki ekran görüntüsünde vurgulanmıştır). Tıkladığınızda, Apache Solr'ın çeşitli aynalarının bulunduğu sayfaya yönlendirileceksiniz. Aşağıdaki ekran görüntüsünde gösterildiği gibi, sizi Apache Solr'un kaynak ve ikili dosyalarını indirebileceğiniz bir sayfaya yönlendirecek bir ayna seçin ve üzerine tıklayın.
Aşama 3
Tıklandığında, adlı bir klasör Solr-6.2.0.tqzsisteminizin indirilenler klasörüne indirilecektir. İndirilen klasörün içeriğini çıkarın.
4. adım
Hadoop ana dizininde Solr adlı bir klasör oluşturun ve aşağıda gösterildiği gibi çıkarılan klasörün içeriğini bu klasöre taşıyın.
$ mkdir Solr
$ cd Downloads
$ mv Solr-6.2.0 /home/Hadoop/
Doğrulama
Göz atın bin Solr Home dizininin klasörüne gidin ve kurulumu kullanarak version seçeneği, aşağıdaki kod bloğunda gösterildiği gibi.
$ cd bin/
$ ./Solr version
6.2.0
Ev ve yolu belirleme
Aç .bashrc aşağıdaki komutu kullanarak dosya -
[Hadoop@localhost ~]$ source ~/.bashrc
Şimdi Apache Solr için ev ve yol dizinlerini aşağıdaki gibi ayarlayın -
export SOLR_HOME = /home/Hadoop/Solr
export PATH = $PATH:/$SOLR_HOME/bin/
Terminali açın ve aşağıdaki komutu uygulayın -
[Hadoop@localhost Solr]$ source ~/.bashrc
Artık Solr komutlarını herhangi bir dizinden çalıştırabilirsiniz.
Bu bölümde Apache Solr'un mimarisini tartışacağız. Aşağıdaki çizim Apache Solr mimarisinin bir blok diyagramını göstermektedir.
Solr Mimarlık ─ Yapı Taşları
Apache Solr'un ana yapı taşları (bileşenleri) aşağıdadır -
Request Handler- Apache Solr'a gönderdiğimiz istekler bu istek işleyicileri tarafından işlenir. İstekler, sorgu istekleri veya dizin güncelleme istekleri olabilir. Gereksinimimize bağlı olarak, istek işleyicisini seçmemiz gerekir. Solr'a bir istek iletmek için, genellikle işleyiciyi belirli bir URI uç noktasına eşleriz ve belirtilen istek onun tarafından sunulur.
Search Component- Arama bileşeni, Apache Solr'da sağlanan bir arama türüdür (özelliğidir). Yazım denetimi, sorgu, modelleme, tıklama vurgulama vb. Olabilir. Bu arama bileşenleri şu şekilde kaydedilir:search handlers. Bir arama işleyicisine birden fazla bileşen kaydedilebilir.
Query Parser- Apache Solr sorgu ayrıştırıcısı, Solr'a ilettiğimiz sorguları ayrıştırır ve sözdizimsel hatalar için sorguları doğrular. Sorguları ayrıştırdıktan sonra, onları Lucene'nin anlayacağı bir biçime çevirir.
Response Writer- Apache Solr'daki bir yanıt yazıcısı, kullanıcı sorguları için biçimlendirilmiş çıktı üreten bileşendir. Solr, XML, JSON, CSV, vb. Gibi yanıt biçimlerini destekler. Her yanıt türü için farklı yanıt yazarlarımız vardır.
Analyzer/tokenizer- Lucene, verileri belirteçler biçiminde tanır. Apache Solr içeriği analiz eder, bunları belirteçlere böler ve bu belirteçleri Lucene'ye iletir. Apache Solr'daki bir analizör, alanların metnini inceler ve bir belirteç akışı oluşturur. Bir jetonlaştırıcı, analizör tarafından hazırlanan jeton akışını jetonlara böler.
Update Request Processor - Apache Solr'a bir güncelleme isteği gönderdiğimizde, istek topluca olarak bilinen bir dizi eklenti (imza, günlük kaydı, indeksleme) aracılığıyla çalıştırılır. update request processor. Bu işlemci, bir alanı düşürmek, bir alan eklemek gibi değişikliklerden sorumludur.
Bu bölümde, Solr üzerinde çalışırken sıklıkla kullanılan bazı terimlerin gerçek anlamını anlamaya çalışacağız.
Genel Terminoloji
Aşağıda, tüm Solr kurulum türlerinde kullanılan genel terimlerin bir listesi verilmiştir -
Instance - Tıpkı bir tomcat instance veya a jetty instancebu terim, bir JVM içinde çalışan uygulama sunucusunu ifade eder. Solr'un ana dizini, bir veya daha fazla çekirdeğin her durumda çalışacak şekilde yapılandırılabildiği bu Solr örneklerinin her birine referans sağlar.
Core - Uygulamanızda birden çok dizin çalıştırırken, her biri bir çekirdeğe sahip birden çok örnek yerine her durumda birden çok çekirdeğiniz olabilir.
Home - $ SOLR_HOME terimi, çekirdekler ve bunların indeksleri, konfigürasyonları ve bağımlılıkları ile ilgili tüm bilgileri içeren ana dizini ifade eder.
Shard - Dağıtılmış ortamlarda, veriler, her veri parçasının bir veri yığını olarak adlandırılabildiği birden çok Solr örneği arasında bölümlenir. Shard. Tüm dizinin bir alt kümesini içerir.
SolrCloud Terminolojisi
Daha önceki bir bölümde, Apache Solr'un bağımsız modda nasıl kurulacağını tartışmıştık. Solr'ı ayrıca bir master-slave modelinde Solr'un kurulu olduğu dağıtılmış modda (bulut ortamı) kurabileceğimizi unutmayın. Dağıtılmış modda, dizin ana sunucuda oluşturulur ve bir veya daha fazla bağımlı sunucuya kopyalanır.
Solr Cloud ile ilişkili temel terimler aşağıdaki gibidir -
Node - Solr bulutunda, her bir Solr örneği bir node.
Cluster - Ortamın tüm düğümleri bir araya geldiğinde bir cluster.
Collection - Bir kümenin bir mantıksal indeksi vardır ve collection.
Shard - Parça, dizinin bir veya daha fazla kopyasına sahip olan koleksiyonun bir parçasıdır.
Replica - Solr Core'da, bir düğümde çalışan bir parçanın kopyası, replica.
Leader - Ayrıca Solr Cloud'un isteklerini kalan kopyalara dağıtan bir parçanın kopyasıdır.
Zookeeper - Solr Cloud'un merkezi konfigürasyon ve koordinasyon, kümeyi yönetmek ve bir lider seçmek için kullandığı bir Apache projesidir.
Yapılandırma Dosyaları
Apache Solr'daki ana yapılandırma dosyaları aşağıdaki gibidir -
Solr.xml- Solr Cloud ile ilgili bilgileri içeren $ SOLR_HOME dizinindeki dosyadır. Çekirdekleri yüklemek için Solr, onları tanımlamaya yardımcı olan bu dosyaya başvurur.
Solrconfig.xml - Bu dosya, istek işleme ve yanıt biçimlendirmeyle ilgili tanımları ve çekirdeğe özgü yapılandırmaları, ayrıca indeksleme, yapılandırma, bellek yönetimi ve taahhütleri içerir.
Schema.xml - Bu dosya, alanlar ve alan türleriyle birlikte tüm şemayı içerir.
Core.properties- Bu dosya çekirdeğe özel konfigürasyonları içerir. İçin yönlendirilircore discovery, çekirdek adını ve veri dizininin yolunu içerdiğinden. Herhangi bir dizinde kullanılabilir ve daha sonracore directory.
Solr Başlangıç
Solr'u kurduktan sonra, bin Solr ana dizinindeki klasörü ve aşağıdaki komutu kullanarak Solr'ı başlatın.
[Hadoop@localhost ~]$ cd
[Hadoop@localhost ~]$ cd Solr/
[Hadoop@localhost Solr]$ cd bin/
[Hadoop@localhost bin]$ ./Solr start
Bu komut arka planda Solr'ı başlatır ve aşağıdaki mesajı görüntüleyerek 8983 numaralı bağlantı noktasını dinler.
Waiting up to 30 seconds to see Solr running on port 8983 [\]
Started Solr server on port 8983 (pid = 6035). Happy searching!
Solr'ı ön planda başlatma
Eğer başlarsan Solr kullanmak startkomut, ardından Solr arka planda başlayacaktır. Bunun yerine, Solr'ı ön planda kullanarak başlatabilirsiniz.–f option.
[Hadoop@localhost bin]$ ./Solr start –f
5823 INFO (coreLoadExecutor-6-thread-2) [ ] o.a.s.c.SolrResourceLoader
Adding 'file:/home/Hadoop/Solr/contrib/extraction/lib/xmlbeans-2.6.0.jar' to
classloader
5823 INFO (coreLoadExecutor-6-thread-2) [ ] o.a.s.c.SolrResourceLoader
Adding 'file:/home/Hadoop/Solr/dist/Solr-cell-6.2.0.jar' to classloader
5823 INFO (coreLoadExecutor-6-thread-2) [ ] o.a.s.c.SolrResourceLoader
Adding 'file:/home/Hadoop/Solr/contrib/clustering/lib/carrot2-guava-18.0.jar'
to classloader
5823 INFO (coreLoadExecutor-6-thread-2) [ ] o.a.s.c.SolrResourceLoader
Adding 'file:/home/Hadoop/Solr/contrib/clustering/lib/attributes-binder1.3.1.jar'
to classloader
5823 INFO (coreLoadExecutor-6-thread-2) [ ] o.a.s.c.SolrResourceLoader
Adding 'file:/home/Hadoop/Solr/contrib/clustering/lib/simple-xml-2.7.1.jar'
to classloader
……………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………….
12901 INFO (coreLoadExecutor-6-thread-1) [ x:Solr_sample] o.a.s.u.UpdateLog
Took 24.0ms to seed version buckets with highest version 1546058939881226240 12902
INFO (coreLoadExecutor-6-thread-1) [ x:Solr_sample]
o.a.s.c.CoreContainer registering core: Solr_sample
12904 INFO (coreLoadExecutor-6-thread-2) [ x:my_core] o.a.s.u.UpdateLog Took
16.0ms to seed version buckets with highest version 1546058939894857728
12904 INFO (coreLoadExecutor-6-thread-2) [ x:my_core] o.a.s.c.CoreContainer
registering core: my_core
Solr'ı başka bir bağlantı noktasında başlatma
Kullanma –p option of start komutunda Solr'ı aşağıdaki kod bloğunda gösterildiği gibi başka bir portta başlatabiliriz.
[Hadoop@localhost bin]$ ./Solr start -p 8984
Waiting up to 30 seconds to see Solr running on port 8984 [-]
Started Solr server on port 8984 (pid = 10137). Happy searching!
Solr Durduruluyor
Solr'ı kullanarak durdurabilirsiniz. stop komut.
$ ./Solr stop
Bu komut Solr'u durdurur ve aşağıda gösterildiği gibi bir mesaj görüntüler.
Sending stop command to Solr running on port 8983 ... waiting 5 seconds to
allow Jetty process 6035 to stop gracefully.
Solr yeniden başlatılıyor
restartSolr komutu Solr'u 5 saniye durdurur ve yeniden başlatır. Solr'ı aşağıdaki komutu kullanarak yeniden başlatabilirsiniz -
./Solr restart
Bu komut, aşağıdaki mesajı görüntüleyerek Solr'ı yeniden başlatır -
Sending stop command to Solr running on port 8983 ... waiting 5 seconds to
allow Jetty process 6671 to stop gracefully.
Waiting up to 30 seconds to see Solr running on port 8983 [|] [/]
Started Solr server on port 8983 (pid = 6906). Happy searching!
Solr ─ yardım Komutu
help Solr komutu, Solr komut isteminin ve seçeneklerinin kullanımını kontrol etmek için kullanılabilir.
[Hadoop@localhost bin]$ ./Solr -help
Usage: Solr COMMAND OPTIONS
where COMMAND is one of: start, stop, restart, status, healthcheck,
create, create_core, create_collection, delete, version, zk
Standalone server example (start Solr running in the background on port 8984):
./Solr start -p 8984
SolrCloud example (start Solr running in SolrCloud mode using localhost:2181
to connect to Zookeeper, with 1g max heap size and remote Java debug options enabled):
./Solr start -c -m 1g -z localhost:2181 -a "-Xdebug -
Xrunjdwp:transport = dt_socket,server = y,suspend = n,address = 1044"
Pass -help after any COMMAND to see command-specific usage information,
such as: ./Solr start -help or ./Solr stop -help
Solr ─ durum Komutu
Bu statusSolr komutu, bilgisayarınızda çalışan Solr örneklerini aramak ve bulmak için kullanılabilir. Size bir Solr örneği hakkında sürümü, bellek kullanımı vb. Bilgiler sağlayabilir.
Aşağıdaki durum komutunu kullanarak bir Solr örneğinin durumunu kontrol edebilirsiniz -
[Hadoop@localhost bin]$ ./Solr status
Yürütüldüğünde, yukarıdaki komut Solr'nin durumunu aşağıdaki gibi gösterir -
Found 1 Solr nodes:
Solr process 6906 running on port 8983 {
"Solr_home":"/home/Hadoop/Solr/server/Solr",
"version":"6.2.0 764d0f19151dbff6f5fcd9fc4b2682cf934590c5 -
mike - 2016-08-20 05:41:37",
"startTime":"2016-09-20T06:00:02.877Z",
"uptime":"0 days, 0 hours, 5 minutes, 14 seconds",
"memory":"30.6 MB (%6.2) of 490.7 MB"
}
Solr Yöneticisi
Apache Solr'u başlattıktan sonra, ana sayfasını ziyaret edebilirsiniz. Solr web interface aşağıdaki URL'yi kullanarak.
Localhost:8983/Solr/
Solr Admin'in arayüzü aşağıdaki gibi görünür -
Bir Solr Çekirdeği, onu kullanmak için gerekli tüm Solr yapılandırma dosyalarını içeren bir Lucene dizininin çalışan bir örneğidir. İndeksleme ve analiz gibi işlemleri gerçekleştirmek için bir Solr Core oluşturmamız gerekiyor.
Bir Solr uygulaması bir veya birden fazla çekirdek içerebilir. Gerekirse, bir Solr uygulamasındaki iki çekirdek birbiriyle iletişim kurabilir.
Bir Çekirdek Oluşturmak
Solr'ı kurup başlattıktan sonra, Solr istemcisine (web arayüzü) bağlanabilirsiniz.
Aşağıdaki ekran görüntüsünde vurgulandığı gibi, başlangıçta Apache Solr'da çekirdek yoktur. Şimdi, Solr'da nasıl çekirdek oluşturulacağını göreceğiz.
Oluştur komutunu kullanma
Bir çekirdek oluşturmanın bir yolu, schema-less core kullanmak create komut, aşağıda gösterildiği gibi -
[Hadoop@localhost bin]$ ./Solr create -c Solr_sample
Burada adında bir çekirdek oluşturmaya çalışıyoruz Solr_sampleApache Solr'da. Bu komut, aşağıdaki mesajı görüntüleyen bir çekirdek oluşturur.
Copying configuration to new core instance directory:
/home/Hadoop/Solr/server/Solr/Solr_sample
Creating new core 'Solr_sample' using command:
http://localhost:8983/Solr/admin/cores?action=CREATE&name=Solr_sample&instanceD
ir = Solr_sample {
"responseHeader":{
"status":0,
"QTime":11550
},
"core":"Solr_sample"
}
Solr'da birden fazla çekirdek oluşturabilirsiniz. Solr Admin'in sol tarafında, bircore selector Aşağıdaki ekran görüntüsünde gösterildiği gibi yeni oluşturulan çekirdeği seçebilirsiniz.
Create_core komutunu kullanma
Alternatif olarak, kullanarak bir çekirdek oluşturabilirsiniz. create_corekomut. Bu komut aşağıdaki seçeneklere sahiptir -
–C core_name | Oluşturmak istediğiniz çekirdeğin adı |
-p port_name | Çekirdeği oluşturmak istediğiniz bağlantı noktası |
-d conf_dir | Bağlantı noktasının yapılandırma dizini |
Nasıl kullanabileceğinizi görelim create_corekomut. Burada adında bir çekirdek oluşturmaya çalışacağız.my_core.
[Hadoop@localhost bin]$ ./Solr create_core -c my_core
Yürütüldüğünde, yukarıdaki komut aşağıdaki mesajı görüntüleyen bir çekirdek oluşturur -
Copying configuration to new core instance directory:
/home/Hadoop/Solr/server/Solr/my_core
Creating new core 'my_core' using command:
http://localhost:8983/Solr/admin/cores?action=CREATE&name=my_core&instanceD
ir = my_core {
"responseHeader":{
"status":0,
"QTime":1346
},
"core":"my_core"
}
Bir Çekirdeği Silme
Bir çekirdeği silebilirsiniz. deleteApache Solr komutu. Diyelim ki bir çekirdeğimiz varmy_core Solr'de, aşağıdaki ekran görüntüsünde gösterildiği gibi.
Bu çekirdeği kullanarak silebilirsiniz. delete Çekirdeğin adını bu komuta aşağıdaki gibi ileterek komut verin -
[Hadoop@localhost bin]$ ./Solr delete -c my_core
Yukarıdaki komutu yürütürken, belirtilen çekirdek aşağıdaki mesajı görüntüleyerek silinecektir.
Deleting core 'my_core' using command:
http://localhost:8983/Solr/admin/cores?action=UNLOAD&core = my_core&deleteIndex
= true&deleteDataDir = true&deleteInstanceDir = true {
"responseHeader" :{
"status":0,
"QTime":170
}
}
Çekirdeğin silinip silinmediğini doğrulamak için Solr'ın web arayüzünü açabilirsiniz.
Genel olarak, indexingbelgelerin veya (diğer varlıkların) sistematik olarak düzenlenmesidir. İndeksleme, kullanıcıların bir belgedeki bilgileri bulmasını sağlar.
Dizin oluşturma, belgeleri toplar, ayrıştırır ve depolar.
İndeksleme, gerekli bir belgeyi bulurken bir arama sorgusunun hızını ve performansını artırmak için yapılır.
Apache Solr'da indeksleme
Apache Solr'da, xml, csv, pdf, vb. Gibi çeşitli belge formatlarını indeksleyebilir (ekleme, silme, değiştirme) yapabiliriz. Solr indeksine çeşitli şekillerde veri ekleyebiliriz.
Bu bölümde, indekslemeyi tartışacağız -
- Solr Web Arayüzünün Kullanılması.
- Java, Python vb. Gibi istemci API'lerinden herhangi birini kullanmak.
- Kullanmak post tool.
Bu bölümde, çeşitli arayüzler (komut satırı, web arayüzü ve Java istemci API'si) kullanarak Apache Solr dizinine nasıl veri ekleneceğini tartışacağız.
Posta Komutu Kullanarak Belgeleri Ekleme
Solr bir post onun içinde komut bin/dizin. Bu komutu kullanarak, Apache Solr'da JSON, XML, CSV gibi çeşitli dosya formatlarını indeksleyebilirsiniz.
Göz atın bin Apache Solr dizinini açın ve –h option Post komutunun aşağıdaki kod bloğunda gösterildiği gibi.
[Hadoop@localhost bin]$ cd $SOLR_HOME
[Hadoop@localhost bin]$ ./post -h
Yukarıdaki komutu yürütürken, aşağıdaki seçeneklerden oluşan bir liste göreceksiniz: post command, Aşağıda gösterildiği gibi.
Usage: post -c <collection> [OPTIONS] <files|directories|urls|-d [".."]>
or post –help
collection name defaults to DEFAULT_SOLR_COLLECTION if not specified
OPTIONS
=======
Solr options:
-url <base Solr update URL> (overrides collection, host, and port)
-host <host> (default: localhost)
-p or -port <port> (default: 8983)
-commit yes|no (default: yes)
Web crawl options:
-recursive <depth> (default: 1)
-delay <seconds> (default: 10)
Directory crawl options:
-delay <seconds> (default: 0)
stdin/args options:
-type <content/type> (default: application/xml)
Other options:
-filetypes <type>[,<type>,...] (default:
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
rtf,htm,html,txt,log)
-params "<key> = <value>[&<key> = <value>...]" (values must be
URL-encoded; these pass through to Solr update request)
-out yes|no (default: no; yes outputs Solr response to console)
-format Solr (sends application/json content as Solr commands
to /update instead of /update/json/docs)
Examples:
* JSON file:./post -c wizbang events.json
* XML files: ./post -c records article*.xml
* CSV file: ./post -c signals LATEST-signals.csv
* Directory of files: ./post -c myfiles ~/Documents
* Web crawl: ./post -c gettingstarted http://lucene.apache.org/Solr -recursive 1 -delay 1
* Standard input (stdin): echo '{commit: {}}' | ./post -c my_collection -
type application/json -out yes –d
* Data as string: ./post -c signals -type text/csv -out yes -d $'id,value\n1,0.47'
Misal
Adında bir dosyamız olduğunu varsayalım sample.csv aşağıdaki içeriğe sahip (içinde bin dizin).
Öğrenci Kimliği | İsim | Lasst Adı | Telefon | Kent |
---|---|---|---|---|
001 | Rajiv | Reddy | 9848022337 | Haydarabad |
002 | Siddharth | Bhattacharya | 9848022338 | Kalküta |
003 | Rajesh | Khanna | 9848022339 | Delhi |
004 | Preethi | Agarwal | 9848022330 | Pune |
005 | Trupthi | Mohanty | 9848022336 | Bhubaneshwar |
006 | Archana | Mishra | 9848022335 | Chennai |
Yukarıdaki veri kümesi Öğrenci kimliği, adı, soyadı, telefonu ve şehri gibi kişisel ayrıntıları içerir. Veri kümesinin CSV dosyası aşağıda gösterilmektedir. Burada, ilk satırını belgeleyen şemadan bahsetmeniz gerektiğini unutmamalısınız.
id, first_name, last_name, phone_no, location
001, Pruthvi, Reddy, 9848022337, Hyderabad
002, kasyap, Sastry, 9848022338, Vishakapatnam
003, Rajesh, Khanna, 9848022339, Delhi
004, Preethi, Agarwal, 9848022330, Pune
005, Trupthi, Mohanty, 9848022336, Bhubaneshwar
006, Archana, Mishra, 9848022335, Chennai
Bu verileri, adlı çekirdek altında indeksleyebilirsiniz. sample_Solr kullanmak post aşağıdaki gibi komut -
[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv
Yukarıdaki komut çalıştırıldığında, verilen belge belirtilen çekirdek altında indekslenir ve aşağıdaki çıktıyı oluşturur.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = Solr_sample -Ddata = files
org.apache.Solr.util.SimplePostTool sample.csv
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/Solr_sample/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,
htm,html,txt,log
POSTing file sample.csv (text/csv) to [base]
1 files indexed.
COMMITting Solr index changes to
http://localhost:8983/Solr/Solr_sample/update...
Time spent: 0:00:00.228
Aşağıdaki URL'yi kullanarak Solr Web Kullanıcı Arayüzünün ana sayfasını ziyaret edin -
http://localhost:8983/
Çekirdeği seçin Solr_sample. Varsayılan olarak, istek işleyicisi/selectve sorgu ":". Herhangi bir değişiklik yapmadan,ExecuteQuery Sayfanın altındaki düğmesi.
Sorguyu yürütürken, aşağıdaki ekran görüntüsünde gösterildiği gibi, dizine alınmış CSV belgesinin içeriğini JSON biçiminde (varsayılan) gözlemleyebilirsiniz.
Note - Aynı şekilde JSON, XML, CSV vb. Diğer dosya formatlarını da indeksleyebilirsiniz.
Solr Web Arayüzünü Kullanarak Belge Ekleme
Solr tarafından sağlanan web arayüzünü kullanarak da belgeleri indeksleyebilirsiniz. Aşağıdaki JSON belgesinin nasıl indeksleneceğini görelim.
[
{
"id" : "001",
"name" : "Ram",
"age" : 53,
"Designation" : "Manager",
"Location" : "Hyderabad",
},
{
"id" : "002",
"name" : "Robert",
"age" : 43,
"Designation" : "SR.Programmer",
"Location" : "Chennai",
},
{
"id" : "003",
"name" : "Rahim",
"age" : 25,
"Designation" : "JR.Programmer",
"Location" : "Delhi",
}
]
Aşama 1
Aşağıdaki URL'yi kullanarak Solr web arayüzünü açın -
http://localhost:8983/
Step 2
Çekirdeği seçin Solr_sample. Varsayılan olarak, aşağıdaki ekran görüntüsünde gösterildiği gibi İstek İşleyici, Ortak İçeride, Üzerine Yazma ve Yükseltme alanlarının değerleri sırasıyla / update, 1000, true ve 1.0'dır.
Şimdi, JSON, CSV, XML, vb. Arasından istediğiniz belge biçimini seçin. Metin alanına dizine eklenecek belgeyi yazın ve Submit Document düğmesi, aşağıdaki ekran görüntüsünde gösterildiği gibi.
Java Client API kullanarak Belge Ekleme
Aşağıda, Apache Solr dizinine belge eklemek için Java programı verilmiştir. Bu kodu adıyla bir dosyaya kaydedinAddingDocument.java.
import java.io.IOException;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.common.SolrInputDocument;
public class AddingDocument {
public static void main(String args[]) throws Exception {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
//Adding fields to the document
doc.addField("id", "003");
doc.addField("name", "Rajaman");
doc.addField("age","34");
doc.addField("addr","vishakapatnam");
//Adding the document to Solr
Solr.add(doc);
//Saving the changes
Solr.commit();
System.out.println("Documents added");
}
}
Terminalde aşağıdaki komutları uygulayarak yukarıdaki kodu derleyin -
[Hadoop@localhost bin]$ javac AddingDocument
[Hadoop@localhost bin]$ java AddingDocument
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
Documents added
Önceki bölümde JSON ve .CSV dosya formatlarında olan Solr'a nasıl veri ekleneceğini anlatmıştık. Bu bölümde, XML belge biçimini kullanarak Apache Solr dizinine nasıl veri ekleneceğini göstereceğiz.
Örnek veri
XML dosya formatını kullanarak aşağıdaki verileri Solr indeksine eklememiz gerektiğini varsayalım.
Öğrenci Kimliği | İsim | Soyadı | Telefon | Kent |
---|---|---|---|---|
001 | Rajiv | Reddy | 9848022337 | Haydarabad |
002 | Siddharth | Bhattacharya | 9848022338 | Kalküta |
003 | Rajesh | Khanna | 9848022339 | Delhi |
004 | Preethi | Agarwal | 9848022330 | Pune |
005 | Trupthi | Mohanty | 9848022336 | Bhubaneshwar |
006 | Archana | Mishra | 9848022335 | Chennai |
XML Kullanarak Belge Ekleme
Yukarıdaki verileri Solr indeksine eklemek için aşağıda gösterildiği gibi bir XML belgesi hazırlamamız gerekiyor. Bu belgeyi şu adla bir dosyaya kaydedinsample.xml.
<add>
<doc>
<field name = "id">001</field>
<field name = "first name">Rajiv</field>
<field name = "last name">Reddy</field>
<field name = "phone">9848022337</field>
<field name = "city">Hyderabad</field>
</doc>
<doc>
<field name = "id">002</field>
<field name = "first name">Siddarth</field>
<field name = "last name">Battacharya</field>
<field name = "phone">9848022338</field>
<field name = "city">Kolkata</field>
</doc>
<doc>
<field name = "id">003</field>
<field name = "first name">Rajesh</field>
<field name = "last name">Khanna</field>
<field name = "phone">9848022339</field>
<field name = "city">Delhi</field>
</doc>
<doc>
<field name = "id">004</field>
<field name = "first name">Preethi</field>
<field name = "last name">Agarwal</field>
<field name = "phone">9848022330</field>
<field name = "city">Pune</field>
</doc>
<doc>
<field name = "id">005</field>
<field name = "first name">Trupthi</field>
<field name = "last name">Mohanthy</field>
<field name = "phone">9848022336</field>
<field name = "city">Bhuwaeshwar</field>
</doc>
<doc>
<field name = "id">006</field>
<field name = "first name">Archana</field>
<field name = "last name">Mishra</field>
<field name = "phone">9848022335</field>
<field name = "city">Chennai</field>
</doc>
</add>
Gördüğünüz gibi, dizine veri eklemek için yazılan XML dosyası, <add> </add>, <doc> </doc> ve <field> </ field> olmak üzere üç önemli etiket içerir.
add- Bu, dizine belge eklemek için kullanılan kök etikettir. Eklenecek bir veya daha fazla belge içerir.
doc- Eklediğimiz belgeler <doc> </doc> etiketleri arasına yerleştirilmelidir. Bu belge, alanlar biçiminde verileri içerir.
field - Alan etiketi, belgenin alanlarının adını ve değerini içerir.
Belgeyi hazırladıktan sonra, önceki bölümde tartışılan yöntemlerden herhangi birini kullanarak bu belgeyi dizine ekleyebilirsiniz.
XML dosyasının şu dosyada olduğunu varsayalım: bin Solr dizini ve adlı çekirdekte indekslenecek my_core, ardından bunu kullanarak Solr dizinine ekleyebilirsiniz. post aşağıdaki gibi araç -
[Hadoop@localhost bin]$ ./post -c my_core sample.xml
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-
core6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files
org.apache.Solr.util.SimplePostTool sample.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/my_core/update...
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,
xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
POSTing file sample.xml (application/xml) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update...
Time spent: 0:00:00.201
Doğrulama
Apache Solr web arayüzünün ana sayfasını ziyaret edin ve çekirdeği seçin my_core. Metin alanına ":" sorgusunu ileterek tüm belgeleri almaya çalışınqve sorguyu yürütün. Yürütme sırasında, istenen verilerin Solr indeksine eklendiğini görebilirsiniz.
Belgeyi XML Kullanarak Güncelleme
Mevcut belgedeki bir alanı güncellemek için kullanılan XML dosyası aşağıdadır. Bunu adıyla bir dosyaya kaydedinupdate.xml.
<add>
<doc>
<field name = "id">001</field>
<field name = "first name" update = "set">Raj</field>
<field name = "last name" update = "add">Malhotra</field>
<field name = "phone" update = "add">9000000000</field>
<field name = "city" update = "add">Delhi</field>
</doc>
</add>
Gördüğünüz gibi, verileri güncellemek için yazılan XML dosyası, tıpkı belge eklemek için kullandığımız dosya gibidir. Ancak tek fark,update alanın özelliği.
Örneğimizde yukarıdaki belgeyi kullanacağız ve belgenin alanlarını id ile güncellemeye çalışacağız. 001.
XML belgesinin binSolr dizini. Adlı çekirdekte bulunan dizini güncellediğimiz içinmy_core, kullanarak güncelleyebilirsiniz post aşağıdaki gibi araç -
[Hadoop@localhost bin]$ ./post -c my_core update.xml
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files
org.apache.Solr.util.SimplePostTool update.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/my_core/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,
htm,html,txt,log
POSTing file update.xml (application/xml) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update...
Time spent: 0:00:00.159
Doğrulama
Apache Solr web arayüzünün ana sayfasını ziyaret edin ve çekirdeği şu şekilde seçin: my_core. Metin alanına ":" sorgusunu ileterek tüm belgeleri almaya çalışınqve sorguyu yürütün. Yürütüldüğünde, belgenin güncellendiğini görebilirsiniz.
Belgeyi Java Kullanarak Güncelleme (İstemci API)
Aşağıda, Apache Solr dizinine belge eklemek için Java programı verilmiştir. Bu kodu adıyla bir dosyaya kaydedinUpdatingDocument.java.
import java.io.IOException;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.client.Solrj.request.UpdateRequest;
import org.apache.Solr.client.Solrj.response.UpdateResponse;
import org.apache.Solr.common.SolrInputDocument;
public class UpdatingDocument {
public static void main(String args[]) throws SolrServerException, IOException {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.setAction( UpdateRequest.ACTION.COMMIT, false, false);
SolrInputDocument myDocumentInstantlycommited = new SolrInputDocument();
myDocumentInstantlycommited.addField("id", "002");
myDocumentInstantlycommited.addField("name", "Rahman");
myDocumentInstantlycommited.addField("age","27");
myDocumentInstantlycommited.addField("addr","hyderabad");
updateRequest.add( myDocumentInstantlycommited);
UpdateResponse rsp = updateRequest.process(Solr);
System.out.println("Documents Updated");
}
}
Terminalde aşağıdaki komutları uygulayarak yukarıdaki kodu derleyin -
[Hadoop@localhost bin]$ javac UpdatingDocument
[Hadoop@localhost bin]$ java UpdatingDocument
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
Documents updated
Belgeyi Silme
Belgeleri Apache Solr dizininden silmek için, silinecek belgelerin kimliklerini <delete> </delete> etiketleri arasında belirtmemiz gerekir.
<delete>
<id>003</id>
<id>005</id>
<id>004</id>
<id>002</id>
</delete>
Burada, bu XML kodu kimlikli belgeleri silmek için kullanılır. 003 ve 005. Bu kodu adıyla bir dosyaya kaydedindelete.xml.
Adlı çekirdeğe ait olan dizinden belgeleri silmek isterseniz my_core, sonra gönderebilirsiniz delete.xml kullanarak dosya post aracı aşağıda gösterildiği gibi.
[Hadoop@localhost bin]$ ./post -c my_core delete.xml
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files
org.apache.Solr.util.SimplePostTool delete.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/my_core/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
rtf,htm,html,txt,log
POSTing file delete.xml (application/xml) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update...
Time spent: 0:00:00.179
Doğrulama
Apache Solr web arayüzünün ana sayfasını ziyaret edin ve çekirdeği şu şekilde seçin: my_core. Metin alanına ":" sorgusunu ileterek tüm belgeleri almaya çalışınqve sorguyu yürütün. Yürütüldüğünde, belirtilen belgelerin silindiğini görebilirsiniz.
Bir Alanı Silme
Bazen kimlik dışındaki alanlara göre belgeleri silmemiz gerekir. Örneğin şehrin Chennai olduğu belgeleri silmemiz gerekebilir.
Bu tür durumlarda, <query> </query> etiket çifti içindeki alanın adını ve değerini belirtmeniz gerekir.
<delete>
<query>city:Chennai</query>
</delete>
Olarak kaydedin delete_field.xml ve adlı çekirdek üzerinde silme işlemini gerçekleştirin my_core kullanmak post Solr aracı.
[Hadoop@localhost bin]$ ./post -c my_core delete_field.xml
Yukarıdaki komutu yürütürken, aşağıdaki çıktıyı üretir.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files
org.apache.Solr.util.SimplePostTool delete_field.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/my_core/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
rtf,htm,html,txt,log
POSTing file delete_field.xml (application/xml) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update...
Time spent: 0:00:00.084
Doğrulama
Apache Solr web arayüzünün ana sayfasını ziyaret edin ve çekirdeği şu şekilde seçin: my_core. Metin alanına ":" sorgusunu ileterek tüm belgeleri almaya çalışınqve sorguyu yürütün. Yürütme sırasında, belirtilen alan değeri çiftini içeren belgelerin silindiğini görebilirsiniz.
Tüm Belgelerin Silinmesi
Tıpkı belirli bir alanı silmek gibi, bir dizindeki tüm belgeleri silmek istiyorsanız, aşağıda gösterildiği gibi <query> </ query> etiketleri arasına “:” simgesini iletmeniz yeterlidir.
<delete>
<query>*:*</query>
</delete>
Olarak kaydedin delete_all.xml ve adlı çekirdek üzerinde silme işlemini gerçekleştirin my_core kullanmak post Solr aracı.
[Hadoop@localhost bin]$ ./post -c my_core delete_all.xml
Yukarıdaki komutu yürütürken, aşağıdaki çıktıyı üretir.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files
org.apache.Solr.util.SimplePostTool deleteAll.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/my_core/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,
htm,html,txt,log
POSTing file deleteAll.xml (application/xml) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update...
Time spent: 0:00:00.138
Doğrulama
Apache Solr web arayüzünün ana sayfasını ziyaret edin ve çekirdeği şu şekilde seçin: my_core. Metin alanına ":" sorgusunu ileterek tüm belgeleri almaya çalışınqve sorguyu yürütün. Yürütme sırasında, belirtilen alan değeri çiftini içeren belgelerin silindiğini görebilirsiniz.
Java (İstemci API) kullanarak tüm belgeleri silme
Aşağıda, Apache Solr dizinine belge eklemek için Java programı verilmiştir. Bu kodu adıyla bir dosyaya kaydedinUpdatingDocument.java.
import java.io.IOException;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.common.SolrInputDocument;
public class DeletingAllDocuments {
public static void main(String args[]) throws SolrServerException, IOException {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
//Deleting the documents from Solr
Solr.deleteByQuery("*");
//Saving the document
Solr.commit();
System.out.println("Documents deleted");
}
}
Terminalde aşağıdaki komutları uygulayarak yukarıdaki kodu derleyin -
[Hadoop@localhost bin]$ javac DeletingAllDocuments
[Hadoop@localhost bin]$ java DeletingAllDocuments
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
Documents deleted
Bu bölümde, Java İstemci API kullanılarak verilerin nasıl alınacağını tartışacağız. Adında bir .csv belgemiz olduğunu varsayalımsample.csv aşağıdaki içeriğe sahip.
001,9848022337,Hyderabad,Rajiv,Reddy
002,9848022338,Kolkata,Siddarth,Battacharya
003,9848022339,Delhi,Rajesh,Khanna
Bu verileri, adlı çekirdek altında indeksleyebilirsiniz. sample_Solr kullanmak post komut.
[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv
Aşağıda, Apache Solr dizinine belge eklemek için Java programı verilmiştir. Bu kodu, isimli bir dosyaya kaydedin.RetrievingData.java.
import java.io.IOException;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrQuery;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.client.Solrj.response.QueryResponse;
import org.apache.Solr.common.SolrDocumentList;
public class RetrievingData {
public static void main(String args[]) throws SolrServerException, IOException {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing Solr query
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
//Adding the field to be retrieved
query.addField("*");
//Executing the query
QueryResponse queryResponse = Solr.query(query);
//Storing the results of the query
SolrDocumentList docs = queryResponse.getResults();
System.out.println(docs);
System.out.println(docs.get(0));
System.out.println(docs.get(1));
System.out.println(docs.get(2));
//Saving the operations
Solr.commit();
}
}
Terminalde aşağıdaki komutları uygulayarak yukarıdaki kodu derleyin -
[Hadoop@localhost bin]$ javac RetrievingData
[Hadoop@localhost bin]$ java RetrievingData
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
{numFound = 3,start = 0,docs = [SolrDocument{id=001, phone = [9848022337],
city = [Hyderabad], first_name = [Rajiv], last_name = [Reddy],
_version_ = 1547262806014820352}, SolrDocument{id = 002, phone = [9848022338],
city = [Kolkata], first_name = [Siddarth], last_name = [Battacharya],
_version_ = 1547262806026354688}, SolrDocument{id = 003, phone = [9848022339],
city = [Delhi], first_name = [Rajesh], last_name = [Khanna],
_version_ = 1547262806029500416}]}
SolrDocument{id = 001, phone = [9848022337], city = [Hyderabad], first_name = [Rajiv],
last_name = [Reddy], _version_ = 1547262806014820352}
SolrDocument{id = 002, phone = [9848022338], city = [Kolkata], first_name = [Siddarth],
last_name = [Battacharya], _version_ = 1547262806026354688}
SolrDocument{id = 003, phone = [9848022339], city = [Delhi], first_name = [Rajesh],
last_name = [Khanna], _version_ = 1547262806029500416}
Verileri depolamanın yanı sıra, Apache Solr, gerektiğinde ve gerektiğinde geri sorgulama olanağı da sağlar. Solr, içinde depolanan verileri sorgulayabileceğimiz belirli parametreleri sağlar.
Aşağıdaki tabloda, Apache Solr'da bulunan çeşitli sorgu parametrelerini listeledik.
Parametre | Açıklama |
---|---|
q | Bu, Apache Solr'un ana sorgu parametresidir, belgeler bu parametredeki terimlere benzerlikleriyle puanlanır. |
fq | Bu parametre, Apache Solr'ın filtre sorgusunu temsil eder ve sonuç kümesini bu filtreyle eşleşen belgeler ile sınırlar. |
Başlat | Başlangıç parametresi, bir sayfa sonuçları için başlangıç ofsetlerini temsil eder, bu parametrenin varsayılan değeri 0'dır. |
satırlar | Bu parametre, sayfa başına alınacak belgelerin sayısını temsil eder. Bu parametrenin varsayılan değeri 10'dur. |
çeşit | Bu parametre, sorgu sonuçlarının sıralanması temel alınarak virgülle ayrılmış alanların listesini belirtir. |
fl | Bu parametre, sonuç kümesindeki her belge için döndürülecek alanların listesini belirtir. |
ağırlık | Bu parametre, sonucu görmek istediğimiz yanıt yazıcısının türünü temsil eder. |
Apache Solr'u sorgulamak için tüm bu parametreleri seçenek olarak görebilirsiniz. Apache Solr ana sayfasını ziyaret edin. Sayfanın sol tarafında Sorgu seçeneğine tıklayın. Burada, bir sorgunun parametreleri için alanları görebilirsiniz.
Kayıtları Geri Alma
Adlı çekirdekte 3 kaydımız olduğunu varsayalım my_core. Seçili çekirdekten belirli bir kaydı almak için, belirli bir belgenin alanlarının ad ve değer çiftlerini iletmeniz gerekir. Örneğin, alan değeriyle kaydı almak istiyorsanızid, alanın ad-değer çiftini şu şekilde geçirmeniz gerekir - Id:001 parametre değeri olarak q ve sorguyu yürütün.
Aynı şekilde, *: * parametresine bir değer olarak ileterek bir dizindeki tüm kayıtları alabilirsiniz. q, aşağıdaki ekran görüntüsünde gösterildiği gibi.
2 den alınıyor nd rekor
Parametreye değer olarak 2'yi geçerek ikinci kayıttaki kayıtları alabiliriz. start, aşağıdaki ekran görüntüsünde gösterildiği gibi.
Kayıt Sayısının Sınırlandırılması
Kayıt sayısını, bir değer belirterek sınırlayabilirsiniz. rowsparametre. Örneğin, 2 değerini parametreye geçirerek sorgu sonucundaki toplam kayıt sayısını 2 ile sınırlayabiliriz.rows, aşağıdaki ekran görüntüsünde gösterildiği gibi.
Yanıt Yazarı Türü
Parametrenin sağlanan değerlerinden birini seçerek gerekli belge türünde yanıtı alabilirsiniz. wt.
Yukarıdaki örnekte, biz seçtik .csv yanıtı almak için format.
Alanların Listesi
Elde edilen belgelerde belirli alanlara sahip olmak istiyorsak, gerekli alanların listesini virgülle ayrılmış olarak özelliğe bir değer olarak iletmemiz gerekir. fl.
Aşağıdaki örnekte, alanları almaya çalışıyoruz - id, phone, ve first_name.
Apache Solr'da yüz oluşturma, arama sonuçlarının çeşitli kategorilere göre sınıflandırılmasını ifade eder. Bu bölümde, Apache Solr'da bulunan yüz oluşturma türlerini tartışacağız -
Query faceting - Mevcut arama sonuçlarında verilen sorguyla da eşleşen belge sayısını döndürür.
Date faceting - Belirli tarih aralıklarına düşen belge sayısını döndürür.
Faceting komutları herhangi bir normal Solr sorgu isteğine eklenir ve fasetleme sayıları aynı sorgu yanıtında geri gelir.
Cephe Kaplama Sorgusu Örneği
Alanı kullanma faceting, tüm terimlerin sayılarını veya herhangi bir alandaki yalnızca en iyi terimleri alabiliriz.
Örnek olarak şunu düşünelim: books.csv çeşitli kitaplarla ilgili verileri içeren dosya.
id,cat,name,price,inStock,author,series_t,sequence_i,genre_s
0553573403,book,A Game of Thrones,5.99,true,George R.R. Martin,"A Song of Ice
and Fire",1,fantasy
0553579908,book,A Clash of Kings,10.99,true,George R.R. Martin,"A Song of Ice
and Fire",2,fantasy
055357342X,book,A Storm of Swords,7.99,true,George R.R. Martin,"A Song of Ice
and Fire",3,fantasy
0553293354,book,Foundation,7.99,true,Isaac Asimov,Foundation Novels,1,scifi
0812521390,book,The Black Company,4.99,false,Glen Cook,The Chronicles of The
Black Company,1,fantasy
0812550706,book,Ender's Game,6.99,true,Orson Scott Card,Ender,1,scifi
0441385532,book,Jhereg,7.95,false,Steven Brust,Vlad Taltos,1,fantasy
0380014300,book,Nine Princes In Amber,6.99,true,Roger Zelazny,the Chronicles of
Amber,1,fantasy
0805080481,book,The Book of Three,5.99,true,Lloyd Alexander,The Chronicles of
Prydain,1,fantasy
080508049X,book,The Black Cauldron,5.99,true,Lloyd Alexander,The Chronicles of
Prydain,2,fantasy
Bu dosyayı kullanarak Apache Solr'a gönderelim. post aracı.
[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv
Yukarıdaki komutu yürütürken, verilen belgelerde belirtilen tüm belgeler .csv dosya Apache Solr'a yüklenecektir.
Şimdi sahada çok yönlü bir sorgu yapalım author koleksiyonda / çekirdekte 0 satır ile my_core.
Apache Solr'un web kullanıcı arayüzünü açın ve sayfanın sol tarafındaki onay kutusunu işaretleyin facet, aşağıdaki ekran görüntüsünde gösterildiği gibi.
Onay kutusunu işaretlediğinizde, faset aramasının parametrelerini geçmek için üç metin alanınız daha olacaktır. Şimdi, sorgunun parametreleri olarak aşağıdaki değerleri iletin.
q = *:*, rows = 0, facet.field = author
Son olarak, sorguyu tıklayarak yürütün. Execute Query buton.
Yürütüldüğünde, aşağıdaki sonucu verecektir.
Dizindeki belgeleri yazara göre sınıflandırır ve her yazarın katkıda bulunduğu kitap sayısını belirtir.
Java Client API Kullanarak Faceting
Aşağıda, Apache Solr dizinine belge eklemek için Java programı verilmiştir. Bu kodu adıyla bir dosyaya kaydedinHitHighlighting.java.
import java.io.IOException;
import java.util.List;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrQuery;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.client.Solrj.request.QueryRequest;
import org.apache.Solr.client.Solrj.response.FacetField;
import org.apache.Solr.client.Solrj.response.FacetField.Count;
import org.apache.Solr.client.Solrj.response.QueryResponse;
import org.apache.Solr.common.SolrInputDocument;
public class HitHighlighting {
public static void main(String args[]) throws SolrServerException, IOException {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
//String query = request.query;
SolrQuery query = new SolrQuery();
//Setting the query string
query.setQuery("*:*");
//Setting the no.of rows
query.setRows(0);
//Adding the facet field
query.addFacetField("author");
//Creating the query request
QueryRequest qryReq = new QueryRequest(query);
//Creating the query response
QueryResponse resp = qryReq.process(Solr);
//Retrieving the response fields
System.out.println(resp.getFacetFields());
List<FacetField> facetFields = resp.getFacetFields();
for (int i = 0; i > facetFields.size(); i++) {
FacetField facetField = facetFields.get(i);
List<Count> facetInfo = facetField.getValues();
for (FacetField.Count facetInstance : facetInfo) {
System.out.println(facetInstance.getName() + " : " +
facetInstance.getCount() + " [drilldown qry:" +
facetInstance.getAsFilterQuery());
}
System.out.println("Hello");
}
}
}
Terminalde aşağıdaki komutları uygulayarak yukarıdaki kodu derleyin -
[Hadoop@localhost bin]$ javac HitHighlighting
[Hadoop@localhost bin]$ java HitHighlighting
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız.
[author:[George R.R. Martin (3), Lloyd Alexander (2), Glen Cook (1), Isaac
Asimov (1), Orson Scott Card (1), Roger Zelazny (1), Steven Brust (1)]]