検索
ホームページphp教程PHP开发Laravel5.3+Scout+ElasticSearch5.0

Laravel5.3+Scout+ElasticSearch5.0

Nov 15, 2016 pm 02:44 PM
html5

システム環境

Ubuntu16.04、ElasticSearch5.0、JDK1.8

ElasticSearch5.0

公式ドキュメントの手順に従えば、通常は正常にインストールできます。
ただし、これはオンライン環境であり、他の人はまだ es2.4 を使用しています。第一に、プロジェクトが大きくなり、第二に、jdk のバージョンが異なるとメモリ要件も異なります。
es5.0 以降は、キャンセルされたためです。たとえば、elasticSearch-head は非常に一般的に使用されていますが、現在は Grunt を介して実行する必要があります。

インストール後に発生する可能性のある小さな問題:

$JAVA_HOME が見つかりませんが、/etc/default/elasticsearch ファイルを設定して JAVA_HOME=/usr を見つけることができます。 /local/java/jdk1.8.0_101/jre;

環境のメモリが小さすぎる場合はインストールしないでください。es5.0 がほぼ 2.5G のメモリを占有します。もちろん、ほとんどの人のコンピュータにはかなりのメモリが搭載されています。大量のメモリ。

Laravel/Scout をインストールして構成します

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

SCOUT_DRIVER=customElasticSearch
ELASTICSEARCH_INDEX=box
ELASTICSEARCH_HOST=localhost:9200

これらの 3 行の構成は、使用するエンジンとそのアドレスを決定するために Scout によって使用されます。

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

$query = [
            'index' =>  $this->index,
            'type'  =>  $builder->model->searchableAs(),
            'body' => [
                'query' => [
                    'filtered' => [
                        'filter' => $filters,
                        'query' => [
                            'bool' => [
                                'must' => $matches
                            ]
                        ],
                    ],
                ],
            ],
        ];
内に見つかるためです。詳細については、公式 Web サイトのアドレスを参照してください。ただし、幸いなことに、Scout にはカスタム エンジンが用意されており、elasticSearchEngine を継承して書き換えます。その中で、2 か所を変更しました:

这只是演示, 要真使用以后一定要改
$matches[] = [
            'match' => [
                '字段名' => $builder->query
            ]
        ];
$query = [
            'index' => $this->index,
            'type' => $builder->model->searchableAs(),
            'body' => [
                'query' => [
                    'bool' => [
                        'filter' => $filters,
                        'must' => $matches,
                    ],
                ],
            ],
        ];

Scout を使用する場合の考えられる落とし穴

データベース テーブルに主キーが自動インクリメントされ名前付き ID を持つフィールドがあるが、そうでない場合、elasticSearch が必要な場合データ テーブルの ID を es ドキュメントの ID として使用するには、モデルの $primaryKey と public $incrementing = false; を変更する必要があります。これにより、現在のデータの他の値を指定できるようになります。 data_id の es 部分がデータベース ID であり、他の部分が新たに指定された場合、検索やその他の操作に影響します。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境