Ana içeriğe atla

Search Api ve Apache Tika

Drupal 8 ile doküman içerisinde kelime aramak mümkün.
Seyfettin Kahveci
Seyfettin Kahveci
20 dakika okuma süresi
drupal-8-ile-dokuman-icerisinde-kelime-arama-search-api-ve-apache-tika

Drupal 8 ile aşağıdaki modulleri entegre ederek yüklediğiniz dosyaların içerisinde bulunan kelimeleri arayabilirsiniz.

İlgili modüllerin kurulumlarını aşağıdaki gibi yapabilirsiniz:

1. Search API Kurulumu

Modul kurabilmek için öncelikle modulunuzun dosyalarını indirmeniz gerekmektedir. Modul dosyalarını indirebilmek için composer ve normal ftp ile yüklemek gibi genellikle 2 yöntem kullanılmaktadır. Ancak bunlardan en doğru olanı composer ile sisteme modul yüklemektir. Composer ile sisteme modulu kurduğunuzda bağımlılıkları da indirdiği için zaman kaybetmenizi engellemiş olacaktır. Ayrıca modulleri composer ile kurduğunuzda bir komutla kolayca modülleri güncelleyebilirsiniz.

Composer ile Search API İndirme

Composer kullanarak aşağıdaki komut ile Search API modulunun /modules/contrib/ yoluna indirilmesini sağlayabilirsiniz. Önerdiğimiz modul indirme yöntemi composer ile modul indirme yöntemidir.

composer require drupal/search_api

Modulu İndirip FTP ile Yükleme

https://www.drupal.org/project/search_api adresinden drupal 8 için gerekli olan modul indirilir ve sıkıştırılmış halinden çıkartılarak modules/ klasörünün altına yüklenmelidir.

İlgili modul sunucuya indirildikten sonra arayüzden Modüller bölümünden etkinleştirilmelidir.

2. Search API Attachments Kurulumu

Arama yapınızın Apache Tika ile entegrasyonunu sağlamak için Search API Attachments kurulması gerekmektedir.

Composer ile Search API Attachments İndirme

Composer kullanarak aşağıdaki komut ile modulu /modules/contrib/ yoluna indirilmesini sağlayabilirsiniz.

composer require drupal/search_api_attachments

Modulu İndirip FTP ile Yükleme

https://www.drupal.org/project/search_api_attachments adresinden drupal 8 için gerekli olan modul indirilir ve sıkıştırılmış halinden çıkartılarak modules/ klasörünün altına yüklenmelidir.

Search API Attachments modulu indirilip sunucuya yüklendikten sonra arayüzden Eklentiler bölümünden etkinleştirilmelidir.

3. Search API Attachments ile Apache Tika Entegrasyonu

https://mvnrepository.com/artifact/org.apache.tika/tika-app/1.19.1 adresinden apache tika 1.19.1 sürümünü indirebilirsiniz. İlgili dosyayı sites/default/files dizinine yüklemeniz gerekmektedir.

İlgili java dosyasını dizine yükledikten sonra Search API Attachments modulunuzun ayarlar sayfasına(/admin/config/search/search_api_attachments) girmelisiniz. İlgili sayfada Extraction Method bölümünden Tika Extractor seçmelisiniz. Path to java executable textine java yazmalısınız. Path to Tika .jar file bölümüne ise apache tika dosyamızı yüklediğimiz adresi ve dosya adını belirmeniz gerekmektedir(sites/default/files/tika-app-1.19.1.jar).

Apache Tika’nın dosyalar içerisinde arama yapabilmesi için java çalıştırabilmesi gerekmektedir. Sunucunuzda JDK kurulu ise 4. bölümü atlayabilirsiniz.

4. Apache Tika için Sunucuya JDK Kurulumu

Apache Tika’nın dosya içerisindeki kelimeleri bulan eklentisi java kullanılarak yazıldığı için sunucunuzun java çalıştırabilmesi gerekmektedir. Sunucunuzda java çalıştırabilmek için JDK kurulmalıdır.

Centos İçin JDK Kurulumu

Sunucunuzun işletim sistemi Centos ise aşağıdaki komut’u kullanarak sunucuza jdk kurabilirsiniz.

sudo yum install java-1.8.0-openjdk-devel

Ubuntu İçin JDK Kurulumu

Sunucunuzun işletim sistemi Ubuntu/redhat vb. ise aşağıdaki komut’u kullanarak sunucunuza jdk kurabilirsiniz.

sudo apt install default-jre

Sunucunuzun işletim sistemine göre komutu kullandıktan sonra sunucuya JDK nın kurulup kurulmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz.

java -version

İlgili komutun ardından aşağıdaki gibi jdk’nızın sürümünü gösteren bir sonuç alıyorsanız JDK başarıyla kurulmuştur.

openjdk version "1.8.0_191"

OpenJDK Runtime Environment (build 1.8.0_191-b12)

OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Eğer Apache üzerinde Java çalıştırma ile ilgili hata alınırsa aşağıdaki komut çalıştırılmalıdır( Java Runtime Environment).

setsebool -P httpd_execmem on

5. Search API Ayarlarını Tanımlama

Search API View kullanarak arama yapabilmemizi sağlamaktadır. Search API’ye yeni bir server eklemek için Database Search modulunu etkinleştirmeniz gerekmektedir.

Database Search modulunu etkinleştirdikten sonra /admin/config/search/search-api adresine gidiyoruz. Karşımıza Add Server ve Add Index butonları çıkmaktadır. Add Server butonu arama yapılacak server tanımlamanızı sağlamaktadır. Add Index ise Add Server ile tanımlamış olduğunuz server içerisinden hangi indexlerde arama yapabileceğinizi tanımlamayı sağlamaktadır. Bir server içerisinde birden çok index tanımlaması yapabilirsiniz. İlgili adresten Add Server butonuna basıyoruz.

Server name bölümünden istediğiniz tanımı verebilirsiniz. Backend seçenekleri arasında Database Search modulunu açtığımız için Database gelmektedir. Apache Solr modulu gibi diğer arama eklentilerini kurmuş olsaydık bu seçenekler arasında yerlerini alacaklardır. CONFIGURE DATABASE BACKEND bölümünden arama butonunun içerisine minimum kaç kelime yazıldığında arama yapılabileceğini ve aramanın ilişkisini seçebileceğiniz ayarlar bulunmaktadır.

Database’ımızden arama yapan Database Server’ımızı tanımladıktan sonra /admin/config/search/search-api adresinden Add Index butonuna tıklıyoruz.

Index Name bölümüne aramamızı belirten index adını belirtebilirsiniz. Bizler Basic Page content type ınde makine adı field_basic_page_dosya olan dosyalarımızın içerisinde arama yapacağımız için Data Sources bölümünden File seçiyoruz.

Server bölümünden oluşturacağımız index’in arama yapacağı Server’ı seçiyoruz. Daha önceden oluşturmuş olduğumuz Database server’ı seçip Index’imizi kayıt edip fieldlarımızı eklediğimiz ekrana geçiyoruz.

Fields sekmesinden Add fields butonuna tıklıyoruz.

Dosyalarımızın yüklendiği field’ın makine adı field_basic_page_dosya olduğu için General bölümünden Search api attachments arasından bulup Add butonuna tıklıyoruz.

Ardından Save Changes butonuna tıklıyoruz. Sonrasında Processors sekmesine geliyoruz. Buradan File attachments’ı seçiyoruz.

Hangi dosya uzantılarının içerisinde arama yapılmayacağını aşağıda çıkan bölümden ayarlayabilirsiniz.

Aranan kelimenin arama sonuçlarında kalın görünmesi için Highlight’ı seçip alt bölümden ayarlarını yapabilirsiniz.

İlgili ayarları tanımladıktan sonra View sekmesine geçiyoruz ve bu tanımlamadan önce yüklenen dosyaların taranıp veritabanına eklenmesi için Index now butonuna tıklayarak tekrar taratıyoruz.

Ardından arama sonuçlarını görebileceğimiz View settings bölümü Index Database Index Search File olan Search path’inden çalışan bir view yapıyoruz.

View’a dosyamızın adını gösterecek olan Filename Field’ını ekliyoruz.

Ardından View’a Excerpt field’ını ekliyoruz. Ayarlarından Use highlighted field data yı seçiyoruz.

View’ımızın arama yapabilmesi için filter criteria bölümüne FullText Search Field’ını ekliyoruz.

İlgili alanı kullanarak arama yapılabilmesi için Field’ın exposed filter’ını açıyoruz.

Contains bölümünden bu alana girdiğimiz herhangi bir kelimenin geçtiği aramaları getirebilmesi için Contains any of these words seçeneğini işaretliyoruz.

Ardından Basic Page content type’ımıza dosyaları ekliyoruz ve view ile oluşturmuş olduğumuz /search adresine gidip Exposed filter türünde olan Fulltext Search field’ını kullanarak dosyalarımızın içerisinde arama yapıyoruz.

Ofislerimiz

Drupart Locations

Ofislerimiz

Drupart AR-GE

GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ

+90 262 678 8872

+90 216 706 12 58 

[email protected]

Londra

151 West Green Road, London, England

+44 203 815 6478

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+1 (740) 666 6255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]