За последние 24 часа нас посетили 63269 программистов и 1744 робота. Сейчас ищут 1055 программистов ...

Не работает elasticsearch

Тема в разделе "Yii", создана пользователем Dimon2x, 10 апр 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Сделал всё по инструкции

    Добавил в компонент, сделал для common и для frontend

    Код (Text):
    1. 'elasticsearch' => [
    2.             'class' => 'yii\elasticsearch\Connection',
    3.             'nodes' => [
    4.                 ['http_address' => '127.0.0.1:9200'],
    5.                 // configure more hosts if you have a cluster
    6.             ],
    7.         ],
    Настроил всё в модели и в контроллере, все ссылки работают.

    Делаю так

    PHP:
    1. $model = new Megacorp();
    2.         $model->attributes = [
    3.             "first_name" => "John",
    4.             "last_name"  => "Smith",
    5.             "age"        => "25",
    6.             "about"      => 'I love to go rock climbing',
    7.            "interests"  => [ "sports", "music"]
    8.         ];
    Пока никаких ошибок нету, но если сделать сохранение

    PHP:
    1. $model->save();
    то вылазит ошибка

    PHP:
    1. Elasticsearch Database Exception – yii\elasticsearch\Exception
    2. Elasticsearch request failed: 7 - Failed to connect to 127.0.0.1 port 9200: Connection refused
    3. Error Info: Array
    4. (
    5.     [requestMethod] => GET
    6.     [requestUrl] => http://127.0.0.1:9200/_nodes
    7.     [requestBody] =>
    8.     [responseHeaders] => Array
    9.         (
    10.         )
    11.  
    12.     [responseBody] =>
    13. )
    --- Добавлено ---
    Если этот компонент работает с ActiveRecord, значит сохраняться должно в Mysql, а куда именно?
    --- Добавлено ---
    Скачал я этот elasticsearch, запустил из папки bin, зашёл по адресу http://127.0.0.1:9200

    Он мне отдал

    Код (Text):
    1. {
    2.   "name" : "kvf5uKD",
    3.   "cluster_name" : "elasticsearch",
    4.   "cluster_uuid" : "SZ9ACxoNQ7yaiGdi6zN_GA",
    5.   "version" : {
    6.     "number" : "6.2.3",
    7.     "build_hash" : "c59ff00",
    8.     "build_date" : "2018-03-13T10:06:29.741383Z",
    9.     "build_snapshot" : false,
    10.     "lucene_version" : "7.2.1",
    11.     "minimum_wire_compatibility_version" : "5.6.0",
    12.     "minimum_index_compatibility_version" : "5.0.0"
    13.   },
    14.   "tagline" : "You Know, for Search"
    15. }
    Потом попробовал перезагрузить сайт yii, ошибка ушла и пришла другая

    Код (Text):
    1. Elasticsearch Database Exception – yii\elasticsearch\Exception
    2. Cluster autodetection did not find any active node. Make sure a GET /_nodes reguest on the hosts defined in the config returns the "http_address" field for each node.
     
  2. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Добавил в конфиг

    Код (Text):
    1. 'elasticsearch' => [
    2.   /* другие параметры */
    3.   'autodetectCluster' => false,
    4. ]
    теперь другая ошибка

    Код (Text):
    1. Invalid Configuration – yii\base\InvalidConfigException
    2. Elasticsearch node needs at least a http_address configured.
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну ты же читаешь ошибки? Они все связаны с неверной конфигурацией elastic search, а не с твоим проектом yii. Почитай, как эту хрень настраивают и настрой
    --- Добавлено ---
    AR в Yii может работать и с MongoDB, и с Sphinx, и с Elastic Search и т.п.