2015-11-23 29 views
7

Elastik aramada raylar konusunda da yeniyim. Tire, Searchkick ve diğerlerini kullanarak yapılandırmak için başka kaynaklar gördüm ama Elasticsearch gemini kullanmak istiyorum. Sistemimde çalışan rayları çalıştırıyorum ve Elasticsearch sunucusunu çalıştırıyorum ama birbirleriyle iletişim kurmak için bunları nasıl yapılandıracağımı bilmiyorum.Elasticsearch, "Elasticsearch" gemini kullanarak raylı uygulama ile nasıl entegre edilir?

Şu anda aynı şeyi yapmak için çok fazla sıkıntı yaşıyorum. Herhangi bir yardım çok takdir edilecektir.

+0

adreslerine bakabilirsiniz. Lütfen elasticsearch ilgili kodunuzu gönderiniz ve sorun/hatanın ne olduğunu bilmiyoruz. \t ":: İsteği" – nayiaw

+0

"elasticsearch/modelini" sınıf Servisi gerektirir belongs_to: çalışan,: class_name => ":: Çalışanı" end Service.import – Tulsi

+0

Hata ActionView :: Şablon :: Hata ([404] {"error": {"root_cause": [{"type": " index_not_fo und_exception "," reason ":" böyle bir dizin yok "," index ":" services "," resource.":" ifadesini ":" x_or_alias "," resource.id ":" services "}]," type ":" index_not_found_exception "," reaso n ":" no index "," index ":" services "," resource.type ":" index_or_alias "," resource .id ":" services "}," status ": 404}): – Tulsi

cevap

11

Model indeksleme için elastiklerin github geminin çok basit bir hızlı başlangıcı için, geliştirme ortamında elasticsearch ile aşağıdakileri gerçekleştirebilirsiniz: 9200

Gemfile 0

: Artık oynayabilirsiniz

include Elasticsearch::Model 

: sağ sınıf ilanı sonrasında app/modelleri/service.rb içinde

$ bundle install 

şunlardır: o zaman terminalde çalıştırın

gem 'elasticsearch-model' 

mevcut verilerle konsolda (sonuçlar sadece bir örnektir):

$ rails console 

# Create the index for Service model on elasticsearch 
> Service.__elasticsearch__.create_index! 
=> {"acknowledged"=>true} 

# Import current Service records into the index 
> Service.import 
    Service Load (207.3ms) SELECT "services".* FROM "services" ORDER BY "services"."id" ASC LIMIT 1000 

# Sample search returning total results 
> Service.__elasticsearch__.search("mykeyword").results.total 
=> 123 

Daha fazla bilgi ve detaylar için projenin github page

0

Daha iyi kullanım Gemfile içinde elasticsearch-rails

:

gem install elasticsearch-rails 

senin Madde modelinden kayıtları almak için, çalıştırın:

$ bundle exec rake environment elasticsearch:import:model CLASS='Article' 

belli ActiveRecord kapsamı ithal kayıtları sınırlamak için, görevine vermek için:

$ bundle exec rake environment elasticsearch:import:model CLASS='Article' SCOPE='published' 

Çalıştır kullanım talimatlarını görüntülemek için bu komut: Yakut/Böyle ActiveRecord :: Base ve Mongoid,

olarak modelleri Raylar için

$ bundle exec rake -D elasticsearch 

modele

elasticsearch-model için kullanmak istiyorsanız, arama entegrasyonunu içeriyor

+0

"Elasticsearch", Elasticsearch-rayları ve Elasticsearch-modelinin yaptığı gibi bir şeyi yapmaz, Elasticsearch-ray'larını compan'da okurum Elasticsearch-ray iyon böylece iki taş kullanmak yerine düşündüğüm bir i.Ee Elasticsearch kullanmak daha iyidir .. yanlış varsa beni düzeltin. – Tulsi

+0

Bir uygulama geliştirdim. Şimdi, ben bir özellik eklemek istiyorum böylece kullanıcı farklı ürün üzerinde flipkart, paytm tarafından yapılan gibi seçim dayalı arama hassaslaştırabilirsiniz. – Tulsi

+0

Evet, raylar uygulamanız için doğru elastik raylar kullanın elasticsearch-ray kütüphanesi, Ruby on Rails uygulamalarına uygun özellikler sağlayan elasticsearch-model kitaplığı için bir arkadaştır. –