Drupal 8 ile Doküman İçerisinde Kelime Arama

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 Ayarları

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

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.

Search API Server Ekleme

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.

Search API Server Ekleme

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.

Search Api İndex Ekleme

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.

Search API Dosya İçinden Arama Ayarları

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.

Search API Server Ayarları

Fields sekmesinden Add fields butonuna tıklıyoruz.

Search API İndexe Field Ekleme

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.

Search API Field Ekleme

Dosyaların içerisinde arama yapabilmesi için field’ın Type alanından Fulltext seçiyoruz.

Search API Field ayarları

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

File Attachments Ayarları

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

File Attachment Ayarları

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

Drupal 8 Search API Higlight Ekleme

Drupal 8 Search API Highlight Ayarları

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

Drupal 8 Search API Yeniden Taratma

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.

Drupal Search API View

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

Drupal Search API View

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

Drupal Search API View Field Highlight

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

Drupal 8 View Exposed Filter

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

Field settings

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.

Drupal 8 View Exposed filter arama ayarları

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.

Drupal Search API View