ホームページ  >  記事  >  php教程  >  Laravel5.3+Scout+ElasticSearch5.0 注意事項

Laravel5.3+Scout+ElasticSearch5.0 注意事項

大家讲道理
大家讲道理オリジナル
2016-11-11 09:11:111390ブラウズ

ElasticSearch5.0

es5.0 のインストールに重要な点はありません。公式ドキュメントのプロセスに従っている限り、通常は正常にインストールして実行できます。ただし、オンライン環境では、他のものは問題ありません。まだ es2.4 を使用しています。第一に、プロジェクトが大きいです。第二に、jdk のバージョンによってメモリ要件が異なります。また、es5.0 以降では、サイトプラグインが廃止されたため、以前のバージョンでは多くのプラグインをインストールできません。たとえば、elasticSearch-head は非常に一般的に使用されており、Grunt を実行するか、実行後に発生する可能性のある他のプラグインを Nginx または Apache ディレクトリにインストールする必要があります。インストール:

$JAVA_HOME が見つかりませんが、実際にインストールされています。/etc/default/elasticsearch を設定できます。このファイルで、JAVA_HOME=/usr/local/java/jdk1.8.0_101/jre;

    を見つけます。
  • 環境のメモリが小さすぎる場合は、インストールしないでください。もちろん、今のほとんどの人のコンピュータにはかなりのメモリが必要です

  • をインストールして設定してください。 Laravel/Scout

これらの 3 行を .env ファイルの最後に追加します

SCOUT_DRIVER=customElasticSearchELASTICSEARCH_INDEX=boxELASTICSEARCH_HOST=localhost:9200

これらの 3 行の構成は Sc です。使用しているエンジンを確認するには

読者は、私のドライバーが elasticsearch ではなく、customElasticSearch であることに気づくかもしれません
ElasticSearchEngine を開き、performSearch メソッドを見つけると、このコードが

$query = [            'index' =>  $this->index,            'type'  =>  $builder->model->searchableAs(),            'body' => [                'query' => [                    'filtered' => [                        'filter' => $filters,                        'query' => [                            'bool' => [                                'must' => $matches
                            ]
                        ],
                    ],
                ],
            ],
        ];
内に見つかるためです

search Method を直接実行すると、詳細については、公式 Web サイトのアドレスを参照してください。幸いなことに、Scout にはカスタム エンジンが用意されています。

そこで、新しい CustomElasticSearchEngine を作成し、継承します。 elasticSearchEngine を作成し、その中で、performSearch メソッドを書き直しました。
elasticSearch

データテーブル
のIDを

esのDocument

のIDとして使用したくない場合は、

model

$primaryKey

public $incrementing = false;

を変更する必要があります, したがって、es データの一部 _id がデータベースの id であり、他の部分が新たに指定される場合、現在のデータ テーブル内の他の値を es の ID として指定できます。あなたが行うと、あなたの検索やその他の操作と動作がすべて影響を受けます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。