Я работаю над угловым 6 проектом и обновил версию эластичного поиска с 6 до 7 на сервере, после изменения кода старого API для использования нового, эти ошибки произошли, есть у кого-нибудь идеи, как исправить?

Угловое приложение сделано на визуальном студийном коде, аasticsearch на сервере Linux.

import { Injectable } from '@angular/core';
// import { Clientex } from 'elasticsearch-browser';
import { Client } from '@elastic/elasticsearch';
// import * as elasticsearch from 'elasticsearch-browser';
// import { concatMapTo } from 'rxjs/operators';
// import { stringify } from '@angular/core/src/render3/util';


@Injectable({
  providedIn: 'root'
})

export class ElasticsearchService {

  private client: Client;
  // private clientex: Clientex;

  constructor() {
    if (!this.client) {
      this.connect();
    }
  }

  private connect() {
    /*this.client = new Client(
      {node: 'http://localhost:9200'}
    );*/
    this.client = new Client();
  }

  isAvailable(): Promise<any> {
    return this.client.ping({
    });
  }


  // tslint:disable-next-line:member-ordering
  private queryalldocs = {
    'query': {
      'match_all': {}
    }
  };

  getAllDocuments(_index, _type): any {
    this.client.search({
      index: _index,
      body: this.queryalldocs
    }, {
      ignore: [404]
    }, (err, { body, statusCode, headers, warnings }) => {
      if (err) { console.log(err); }
    });
}

  getAllDocumentsByKey(_index, _type, campo, valor) {
    const string = 'let match = {' + campo + ':' + valor + '}';
    return this.client.search({
      index: _index,
      type: _type,
      body: {
           // tslint:disable-next-line:no-shadowed-variable
           eval(string) {}
      }
    });
  }

  createDocument(value: any) {
    // return this.client.index(value);
    this.client.create(value);
  }

}

ОШИБКИ :

ОШИБКА в ./node_modules/@elastic/elasticsearch/lib/Connection.js Модуль не найден: Ошибка: Не удается разрешить 'http' в 'C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules @ эластичная \ elasticsearch \ Lib »

ОШИБКА в ./node_modules/@elastic/elasticsearch/lib/Connection.js Модуль не найден: Ошибка: не удается разрешить https в C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules @ эластичная \ elasticsearch \ Lib »

ОШИБКА в ./node_modules/@elastic/elasticsearch/lib/Transport.js Модуль не найден: Ошибка: Не удалось разрешить 'os' в 'C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules @ эластичная \ elasticsearch \ Lib »

ОШИБКА в ./node_modules/decompress-response/index.js Модуль не найден: Ошибка: не удается разрешить «поток» в «C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules \ depresspress-response» '

ОШИБКА в ./node_modules/@elastic/elasticsearch/lib/Transport.js Модуль не найден: Ошибка: Не удается разрешить zlib в C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules @ эластичная \ elasticsearch \ Lib »

ОШИБКА в ./node_modules/decompress-response/index.js Модуль не найден: Ошибка: не удается разрешить zlib в C: \ Users \ ICARO \ Desktop \ projetos \ pastas \ xtr-social \ node_modules \ depresspress-response '

3
Icaro Boa Nova 30 Май 2019 в 21:06

2 ответа

Лучший ответ

В соответствии с документацией по упругому поиску > https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/5.x/breaking-changes.html ), все клиенты браузера обрабатываются с помощью пакета эластичного поиска-браузера npm :

Больше не нужно поддерживать браузер, так как он будет распространяться через другой модуль, @astic /asticsearch-browser. Этот модуль предназначен только для Node.js.

0
PM1 9 Янв 2020 в 00:11

Я считаю, что вам нужно установить эластичный браузер, а затем:

import { Client } from 'elasticsearch-browser';
0
Muhammad Kamran 30 Май 2019 в 18:12