diff --git a/front-api/Gemfile b/front-api/Gemfile index 38d0f55..1d851c3 100644 --- a/front-api/Gemfile +++ b/front-api/Gemfile @@ -14,7 +14,7 @@ platform :ruby do gem "activerecord" end - +gem 'elasticsearch' gem "sinatra" gem "sinatra-activerecord" gem "json" diff --git a/front-api/Gemfile.lock b/front-api/Gemfile.lock index c321708..8c788e8 100644 --- a/front-api/Gemfile.lock +++ b/front-api/Gemfile.lock @@ -26,6 +26,16 @@ GEM builder (3.2.2) celluloid (0.16.0) timers (~> 4.0.0) + elasticsearch (1.0.8) + elasticsearch-api (= 1.0.7) + elasticsearch-transport (= 1.0.7) + elasticsearch-api (1.0.7) + multi_json + elasticsearch-transport (1.0.7) + faraday + multi_json + faraday (0.9.1) + multipart-post (>= 1.2, < 3) ffi (1.9.6) ffi (1.9.6-java) hitimes (1.2.2) @@ -41,6 +51,7 @@ GEM rb-inotify (>= 0.9) minitest (5.5.0) multi_json (1.10.1) + multipart-post (2.0.0) pg (0.17.1) puma (2.10.2) rack (>= 1.1, < 2.0) @@ -86,6 +97,7 @@ DEPENDENCIES activerecord activerecord-jdbcpostgresql-adapter bcrypt (~> 3.1.7) + elasticsearch jruby-openssl json pg diff --git a/front-api/app.rb b/front-api/app.rb index 156bb33..3ba1d01 100644 --- a/front-api/app.rb +++ b/front-api/app.rb @@ -3,6 +3,8 @@ require 'sinatra/activerecord' require './config' require 'json' require 'sinatra/cookies' +require 'elasticsearch' + Dir[File.dirname(__FILE__) + '/models/*.rb'].each {|file| require file } diff --git a/front-api/controllers/search.rb b/front-api/controllers/search.rb new file mode 100644 index 0000000..617501c --- /dev/null +++ b/front-api/controllers/search.rb @@ -0,0 +1,18 @@ +get '/search/index' do + es_client = Elasticsearch::Client.new log: true + + all_items = Item.all.to_a + all_items.each do |item| + es_client.index index: 'ribica', type: 'items', id: item.id, body: { + title: 'Test', + name: item.name, + code: item.code, + description: item.description, + sub_category: item.sub_category.name, + category: item.sub_category.category.name, + section: item.sub_category.category.section.name + } + end + + "ok".to_json +end