HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Elasticsearch kurulumu - debian ve ubuntu

ElasticSearch kurulumu yapabilmek için öncelikle sisteminizde OpenJDK kurulu olmalıdır. OpenJDK'yı kurduktan sonra ElasticSearch kurulumuna geçebilirsiniz.

Öncelikle GPG anahtarını ekleyin:

$ wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

Aşağıda ki satırı /etc/apt/sources.list dosyanıza ekleyin:

deb http://packages.elasticsearch.org/elasticsearch/1.3/debian stable main

Kurulumu gerçekleştirin:

$ sudo apt-get update
$ sudo apt-get install elasticsearch

Sistem başladığında elasticsearch hizmetinin de otomatik olarak başlamasını istiyorsanız:

$ sudo update-rc.d elasticsearch defaults 95 10

veya manuel olarak elasticsearch'ü başlatmak için;

$ sudo /etc/init.d/elasticsearch start

Şuan herşey yolundaysa ElasticSearch çalışıyor olmalıdır. Rails uygulamalarınızda ElasticSearch ile arama yapabilmek için modelinizde ElasticSearch'ü include etmeniz gerekir. Örneğin bir Rails uygulamasında bulunan User modelimize bunu include edelim:

include Elasticsearch::Model

Ardından, arama yapacağınız controller action'unda (çoğunlukla index) ElasticSearch'ü çağırmanız gerekmektedir:

def index
  User.import
  @examinations = Examination.__elasticsearch__.search(params[:q]).page(params[:page]).records
end

Rails console'dan elasticsearch'ün çalışıp çalışmadığına aşağıdaki şekilde bakabilirsiniz;

User.__elasticsearch__.client.cluster.health

Herşey yolundaysa status olarak green dönecektir. Elasticsearch çalışıyor ancak performans sorunları varsa yellow dönecektir.

Rails uygulamalarında view tarafı şuna benzer tasarlanabilir:

<%= form_tag users_path, :method => :get, :class => 'form-horizontal', :role => 'form' do %>
  <div class="input-group">
    <%= text_field_tag :q, params[:q], :class => "form-control", placeholder: 'Arama yapın...' %>
    <span class="input-group-btn">
      <button class="btn btn-default" name="button" type="submit">
        <span class="glyphicon glyphicon-search"></span>
      </button>
    </span>
  </div>
<% end %>

Başarılar.


Share this post!


Blog Comments powered by Disqus.