Month: June 2015

Apache Lucene – Kullanım Durumlarına Göre Alan Özellikleri

Genelde tercih edilen kullanım durumları burada listelenmektedir. Özelliklerin kullanım durumlarındaki nitelikleri de yer almaktadır. False olarak belirtilen alanlarda niteliklerin kullanımı / erişimi desteklenmemektedir.

Field Properties by Use Case
Field Properties by Use Case
Advertisements

Apache Solr Notlarım

Post.jar ile windowsta döküman indexleme:
java -Dc=istenenCoreAdı -jar post.jar .\example\*.xml
Indexleme aracı post.jar, http üzerinden core veya collection’un /update pathine curl isteği göndererek iş yapar. Post.jar’da input için default olarak ayarlanmış 3 tip vardır. Xml, json ve csv. Eğer bir pdf veya doc dosyası indexlenmek istenirse Apache Tika tool’u kullanılmalıdır.

Select parametreleri:
Örnek Adres: http://localhost:8983/solr/techproducts/select?q=video

  • fl: field. Sonuçlarda hangi fieldın gözükeceğini belirtmek istediğinizde bu parametre ile veriyorsunuz. fl=name,features gibi bir yazım ile birden fazla alanın gözükmesini sağlayabilirsiniz.
  • q: query. Aranan kelimedir. Örnek indexte herhangi bir alanda video kelimesi aranabilir durumdadır. field belirtilmezse tüm alanlarda (schema.xml’de öyle yapılandırılmış olmalı) arama yapacaktır. Name alanında da video ile eşleşse, id alanında da video ile eşleşse bu kayıtları response ile getirecektir. Ayrıca q içinde field da belirtebilirsiniz.
    Örneğin: http://localhost:8983/solr/techproducts/select?q=name:Apple
    q=price:[0 TO 400]&fl=id,name,price
    bu şekilde bir kullanım ile price alanına aralık verebilirsiniz
  • facet=true&facet.field=cat
    Facet Solr’ın temel özelliklerinden biridir. Facet ile sonuçlar üzerinde gruplama, kategorilendirme, sınıflandırma yapılabilir. İçeriğe göre çok farklı nitelikleri yakalayarak gruplama yapabilirsiniz. Sadece alanlara bağlı değil, içeriğe bağlı da çalışıyor olması ve çok yüksek hızlarda çalışıyor olması büyük avantajlar sağlamaktadır. Facet =true ile gelen sonuçlarda facet özelliğini kullanılabilir yapıyoruz. Basit örneğimiz için facet.field ile de gruplama yapılacak alanı belirtiyoruz. Aşağıdaki ilk adresteki gibi bir sorgu gönderdiğimizde sonuçlar üzerinde, category alanına ilişkin kullanılabilir category alanlarının sayısı gözükmektedir. Burada sadece facet alanı tanımlaması ve temel işlem olan sayıya göre gruplama yaptık.
    Facet’in daha bir çok parametresi / özelliği bulunduğundan bu category sayılarını daha farklı şekillerde kullanabilme imkanına sahibiz. Mesela ikinci adresteki gibi fq=cat:software ile filter query‘i sadece software categorysinde olacak şekilde yapılandırabiliriz. Sonuçlarda price 200 400 arasında olan, software kategorisindeki kayıtların id, name, price alanları gözükecektir.

    1. http://localhost:8983/solr/techproducts/select?q=price:%5B200 TO 400]& fl=id,name,price & facet=true& facet.field=cat
    2. http://localhost:8983/solr/techproducts/select?q=price:%5B0%20TO%20400%5D&fl=id,cat,name,price&facet=true&facet.field=cat&fq=cat:software
  • qt: Request Handler. İstekleri /select pathi üzerinden gönderebilmemiz için kullanılır. Standalone’da bir collection üzerinden istek göndeririz. Fakat cloudda nodelardan birine isteği göndermemiz gereken durumlar olabilir. Bunun için core/collection altındaki /select path’i ile select sorgu isteklerini handle edebiliriz.
  • sort: Select sorgusu ile gelen sonuçları ascending descending sıralamaya olanak sağlar. Örneğin: price desc yazdığımızda fiyatı azalan sırada listeleyecektir. inStock desc, price asc yazarak da birden fazla sorting parameter belirtebiliriz. Temel olarak sort işlemi bunlarla yapılabilir fakat sum(x,y ) desc gibi bir yazım ile de sorting query parametresi verilebilirmiş. Ben kullanmadım.
  • start: /select sorgusu ile gelen sonuçlarda, eşleşen dökümanlardan baştan kaçıncıdan itibaren göstermesini istiyorsak start a belirtmemiz gerekir. Örneğin 30 sonuç gelen bir sorguda start:10 dersek, 10. kayıttan başlayarak dökümanları listeler.
  • rows: Eşleşen dökümanlardan kaç adedinin gözükeceği belirtilir.
  • wt: gelen sonucun gösterim formatını belirler. Xml, json, python, php, ruby, csv olabilir.
  • indent: okunabilir formatta gösterim sağlar

Console Maven Projesine Web Projesi Özelliği Katmak

Merhabalar,

Daha önce File/new/maven project… yolunu kullanarak oluşturduğunuz bir projeyi web’de yayınlama ihtiyacı hissettiniz. Projeyi web projesine dönüştürebilmemiz için gerekli anahtar kelime FACETS!.

Projeye adına tıkladıktan sonra ALT+Enter ile proje özelliklerini açtıktan sonra search kısmına Facets yazalım. Burada Project Facets‘i bulacağız. Facets geldikten sonra da Javascript ve JavaServer Facets olarak seçmemiz yeterli olacaktır. JavaServer Facets sürümü 2.2 desteklemiyor ise 2.1 seçerek ve application server tipimi seçerek burada işimi bitirebilirim.

Bu arada benim bahsi geçen projemin gereksinimi olmadığından “Further Configuration Available” seçeneğinden Jsf implementation library’i disable edebilirim.

Burada maven projesini maven web projesine çevirdik. Tomcat gibi web application server altında yayınlamak için Projeyi, web projesi olarak yayınlamak için packaging tipini jar yerine war olarak değiştirmemiz gerektiği gibi diğer gereksinimleri biliyor olduğumuzu farzediyorum. Olmadı sefer.social@gmail.com adresine mail atın iki geyik yaparız…

Adsız