20 Dakika Okuma Süresi

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).drupalApache 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.

drupalDatabase 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.

apiServer 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.

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

5Index 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.

6Server 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.

 

7Fields sekmesinden Add fields butonuna tıklıyoruz.

8Dosyaları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.

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

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

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

1314İ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.

14Ardı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.

15

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

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

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

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

17Contains 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.

18

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.

19