Elasticsearch-POP:インストール構成


目次
  • 0、引用
  • 1、開発環境
  • 2、インストールElasticsearch-POP
  • 3、配置
  • 4、デバッグ
  • 5、その他の具体的な方法及び詳細は徐々に更新される
  • 0、引用
    最近、会社の関連業務がボトルネックになり、Redis+Mysqlベースのアーキテクチャに依存しているだけで、業務ニーズを満たすことができず、Elasticsearchと組み合わせて再設計されています.どのように関連するドキュメントは検索するのがとても骨が折れるので、とても分散して、だから自分で開発の過程の中で出会った問題を総括して、共に勉強します.
    1、開発環境
  • MacOS
  • PHP 7.4
  • Elasticsearch 7.4.0(阿里雲)
  • Elasticsearch-PHP 7.6
  • Laravel 7.4.0

  • サービスはアリクラウドを直接購入するので、ローカルにElasticsearchを構築することはありません.くどくどしないで、直接ElasticsearchインストールとComposerインストールとチュートリアルをスキップします
    2、Elasticsearch-POPを取り付ける
    2.1新しいプロジェクト、composerを作成/見つける.json、次のコードを追加し、composer installを実行します.
     {
          "require": {
              "elasticsearch/elasticsearch"
          }
      }
    

    2.2既存のプロジェクトでは、composer require elasticsearch/elasticsearchを直接実行する手順が間違っている可能性があります.権限の問題はよくあります.
    3、配置
    3.1構成情報
    require 'vendor/autoload.php';
    use Elasticsearch\ClientBuilder;
    
    $hosts = [
        '192.168.1.1:9200',         // IP +   
        '192.168.1.2',              //   IP
        'mydomain.server.com:9201', //    +   
        'mydomain2.server.com',     //    
        'https://localhost',        //   localhost    SSL
        'https://192.168.1.3:9200'  //   IP +       SSL 
    ];
    $client = ClientBuilder::create()           //     ClientBuilder
                        ->setHosts($hosts)      //       
                        ->build();              //        
    
    //             ,
    //1,IP/   +        
    //2,             https       IP/   +       SSL 
    $hosts = ['URL:PORT'];
    //3,                        
    $hosts = ['USER:PASSWORD@URL:PORT'];
    $hosts = ['admin:[email protected]:9200'];
    

    3.2よくある問題a.missing authentication credentials for REST requestは検証解決方法を追加していません:この方法でUSERを初期化します:PASSWORD@URL:PORT
    4、デバッグ
    //      
    $hosts = ['USER:PASSWORD@URL:PORT'];
    $client = ClientBuilder::create()->setHosts($hosts)->build();
    $params = [
        'index' => 'my_index'
    ];
    
    // Create the index
    $response = $client->indices()->create($params);
    

    5、その他の具体的な方法及び詳細は徐々に更新される