Типы не могут быть предоставлены в запросах отображения пут, если для параметра include_type_name не установлено значение true - PullRequest
0 голосов
/ 26 апреля 2019

Я использую https://github.com/babenkoivan/scout-elasticsearch-driver для реализации Elasticsearch с Laravel Scout. Иван упоминает об этом в Github:

Индексы, созданные в Elasticsearch 6.0.0 или более поздней версии, могут содержать только один тип отображения. Индексы, созданные в 5.x с несколькими типами отображения, будут продолжать функционировать, как и раньше в Elasticsearch 6.x. Типы сопоставления будут полностью удалены в Elasticsearch 7.0.0.

Если я понял прямо здесь: https://www.elastic.co/guide/en/elasticsearch/reference/master/removal-of-types.html Мне либо нужно использовать:

1) PUT index? Include_type_name = true

или лучше

2) PUT index / _doc / 1 { "foo": "баз" }

Я застрял, так как понятия не имею, как использовать 1) или 2)

Как добавить параметр include_type_name = true?

Как создать правильное сопоставление без использования параметра include_type_name?

class TestIndexConfigurator extends IndexConfigurator
{
    use Migratable;
    /**
     * @var array
     */
    protected $settings = [
    ];
    protected $name = 'test';
}

1 Ответ

0 голосов
/ 26 апреля 2019

Более ранние версии Elasticsearch (<= 5) поддерживали несколько типов для каждого индекса.Это означало, что вы можете иметь разные отображения данных для каждого типа.В Elasticsearch 6 это было удалено, и у вас может быть только один тип сопоставления. </p>

Следовательно, для Elasticsearch 7 (последний выпуск) вы можете добавить индекс, настроить сопоставления и добавить документ следующим образом:

  • Создать индекс

    PUT user
    
  • Добавить сопоставление

    PUT user/_mapping 
    {
      "properties": {
        "name": {
          "type": "keyword"
        },
        "loginCount": {
          "type": "long"
        }
      }
    }
    
  • Добавить документ (ы)

    PUT user/_doc/1
    {
      "name": "John",
      "loginCount": 4
    }
    
    
  • Проверка данных в индексе

    GET user/_search
    

Теперь относительно используемого вами драйвера scout -asticsearch-драйвера после прочтения документацииВы упомянули, что просто нужно создать отдельный конфигуратор индекса для каждой модели с возможностью поиска, поскольку несколько моделей не могут храниться в одном индексе.

Итак, чтобы создать индекс, запустите

php artisan make:index-configurator MyIndexConfigurator

, а затем

php artisan elastic:create-index App\\MyIndexConfigurator

, который создаст для вас индекс эластичного поиска.

Чтобы узнать больше о эластичном поиске, яПредлагаем установить на ваш компьютер для разработки иasticsearch и kibana, а затемпообщайтесь с ним в kibana - интерфейс довольно приятный и поддерживает автозаполнение для облегчения обучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...