Поиск…


Установка и тестирование

Первое, что вы хотите сделать для локального развития, - это установить ElasticSearch на свой компьютер и протестировать его, чтобы убедиться, что он работает. Для этого требуется установка Java. Установка довольно проста:

  • Mac OS X: brew install elasticsearch
  • Ubuntu: sudo apt-get install elasticsearch

Затем запустите его:

  • Mac OS X: brew services start elasticsearch
  • Ubuntu: sudo service elasticsearch start

Для его тестирования самый простой способ - curl . Для начала может потребоваться несколько секунд, поэтому не паникуйте, если вы сначала не получите ответа.

curl localhost:9200

Пример ответа:

{
  "name" : "Hydro-Man",
  "cluster_name" : "elasticsearch_gkbonetti",
  "version" : {
    "number" : "2.3.5",
    "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
    "build_timestamp" : "2016-07-27T10:36:52Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

Настройка инструментов для разработки

Когда вы начинаете работу с ElasticSearch (ES), может быть полезно иметь графический инструмент, который поможет вам изучить ваши данные. Плагин под названием elasticsearch-head делает именно это. Чтобы установить его, выполните следующие действия:

  • Узнайте, в какой папке ES установлена: ls -l $(which elasticsearch)
  • cd в эту папку и запустить двоичный файл плагина: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Откройте http://localhost:9200/_plugin/head/ в вашем браузере.

Если бы все работало так, как ожидалось, вы должны увидеть хороший графический интерфейс, где вы сможете исследовать свои данные.

Вступление

У ElasticSearch есть хорошо документированный API JSON, но вы, вероятно, захотите использовать некоторые библиотеки, которые обрабатывают это для вас:

  • Elasticsearch - официальная оболочка низкого уровня для HTTP API

  • Elasticsearch-rails - официальная интеграция Rails на высоком уровне, которая помогает вам подключать ваши модели Rails с помощью ElasticSearch с использованием шаблона ActiveRecord или Repository

  • Chewy - альтернативная, не официальная высокоуровневая интеграция Rails, которая очень популярна и, возможно, имеет лучшую документацию

Давайте используем первый вариант для проверки соединения:

gem install elasticsearch

Затем запустите рубиновый терминал и попробуйте:

require 'elasticsearch'

client = Elasticsearch::Client.new log: true
# by default it connects to http://localhost:9200

client.transport.reload_connections!
client.cluster.health

client.search q: 'test'

Searchkick

Если вы хотите быстро настроить elasticsearch, вы можете использовать камень поиска:

gem 'searchkick'

Добавьте поисковый запрос к моделям, которые вы хотите найти.

class Product < ActiveRecord::Base
  searchkick
end

Добавьте данные в индекс поиска.

Product.reindex

А для запроса используйте:

products = Product.search "apples"
products.each do |product|
  puts product.name
end

Довольно быстро, знание elasticsearch не требуется ;-)

Дополнительная информация здесь: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow