laravelでesを使うときの正しい姿勢について
Laravel の次のチュートリアルコラムでは、laravel で es を使用する際の正しい姿勢を紹介します。
Elasticsearch の概要Elastic の最下層はオープン ソース ライブラリ
Lucene## です#。ただし、Lucene を直接使用することはできず、そのインターフェイスを呼び出す独自のコードを作成する必要があります。 Elastic は Lucene のパッケージであり、すぐに使用できる REST API 操作インターフェイスを提供します。 おすすめコース→:「Elasticsearch 全文検索実践実戦」 (実践動画) コースより 1,000 万レベルのデータ同時実行ソリューション (理論的実践)》
ES と MysqlES の概念は類似しています図に示すように、Mysql に次のように記述します。
転置インデックス転置インデックスについて説明する前に、まず説明します。フォワードインデックスインデックスとは何かについて話します。順方向インデックスは「順方向インデックス」とも呼ばれ、転置インデックスを作成するための基礎となります。
上記のように、キーワードがどの文書に含まれているかを調べる場合、漏れがないようにすべての文書をスキャンする必要があるため、検索時間が大幅に長くなり、検索効率が低下します。このとき、転置インデックスを使用し、まず文書を単語に分割しました。
たとえば、キーワード「検索エンジン」がどの文書に出現するかをクエリしたいとします。まず、転置インデックスを使用して、キーワードが 1 と 3 に出現するドキュメントの位置をクエリできます。次に、順方向インデックスを使用してドキュメント 1 と 3 のコンテンツをクエリし、結果を返すことができます。
Laravel は ES を使用します
プラグインのインストール Basemkhirat/elasticsearch
は Laravel で ES を利用するための拡張機能で、非常に便利です:1) インストール方法
$ combos requirebasemkhirat/elasticsearch
2) Publish
$ php 職人のベンダー:publish –provider=”Basemkhirat\Elasticsearch\ElasticsearchServiceProvider”
configuration このようにしてインストールしました。接続構成は次のとおりです:
'connections' => [ 'default' => [ 'servers' => [ [ "host" => env("ELASTIC_HOST", "127.0.0.1"), "port" => env("ELASTIC_PORT", 9200), 'user' => env('ELASTIC_USER', ''), 'pass' => env('ELASTIC_PASS', ''), 'scheme' => env('ELASTIC_SCHEME', 'http'), ] ], 'index' => env('ELASTIC_INDEX', 'my_index') ]],servers ここにクラスター構成を追加できます。
利用方法このプラグインの利用方法は、よく使われるクエリコンストラクタをサポートするLaravelのクエリコンストラクタから参照することができます。 where
、whereIn、
whereBetween、
orderBy、
first、
get として、またページング メソッド
paginate をサポートします。
$documents = ES::connection(“default”)
->type(“my_type”);get (); # 結果のコレクションを返す
フィールドの重みを設定:
ES::type(“my_type”)->search(“hello” , function ($search){
$search->boost(2)->fields(["title" => 2, "content" => 1])})-> get( );
ソース コードを変更して必要なメソッドを拡張したり、ネイティブ クエリ ステートメントを構築したりすることもできます。$params['body'] = [ 'aggs' => [ 'all_created' => [ 'terms' => [ 'field' => 'element.raw', 'size' => $this->_mAggsPageSize ], 'aggs' => [ 'sum_pv' => [ 'sum' => ['field' => 'pv'], ], ], ], ], ];
結論
ES 組み込みトークナイザーは中間分割サポートには適していません。より推奨されるのは IK トークナイザー です。ik バージョンは ES バージョン番号と一致している必要があることに注意してください。
以上がlaravelでesを使うときの正しい姿勢についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Laravelの構成キャッシュは、すべての構成ファイルを単一のキャッシュファイルにマージすることにより、パフォーマンスを向上させます。生産環境で構成キャッシュを有効にすると、各リクエストでI/O操作を削減し、ファイルの解析を行うと、構成の読み込みが高速化されます。 1.アプリケーションが展開され、構成が安定しており、頻繁な変更は必要ありません。 2。構成を有効にして変更した後、phpartisanconfigを再実行する必要があります:キャッシュを有効にします。 3.構成ファイルのランタイム条件に依存する動的ロジックまたはクロージャーを使用しないでください。 4.トラブルシューティングの問題の場合、まずキャッシュをクリアし、.ENV変数を確認して、再キャッシュする必要があります。

createahelpers.phpfileinapp/helperswithcustomfunctionslikeformatprice、isactiveroute、andisadmin.2.addthefiletothe "files" sectionofcomposer.jsonunderautoload.3.3.runcomposerdump-autoloadtomadtomakeTomeTheEfunctionSglunctionSglovalliableableableableableableableableableableableableabuntion

usemockeryforcustomdependenciesbysettingtintingations withshouldreceive()。2。uselaravel’sfake()methodforfacadeslikemail、queue、andhttptopreventreal interactions.3.replacecontainer-boundserviceswith

紹介テーブルを作成して、紹介、紹介、推奨コード、使用時間を含む推奨関係を記録します。 2.推奨データを管理するために、ユーザーモデルのBelongStomanyとHasmanyの関係を定義します。 3.登録時に一意の推奨コードを生成します(モデルイベントを通じて実装できます)。 4.登録中にパラメーターをクエリすることにより、推奨コードをキャプチャし、検証後に推奨関係を確立し、自己称賛を防ぎます。 5.推奨されるユーザーが指定された動作(サブスクリプション順序)を完了した場合、報酬メカニズムをトリガーします。 6.共有可能な推奨リンクを生成し、Laravel Signature URLを使用してセキュリティを強化します。 7.推奨事項の総数や変換された番号など、ダッシュボードに推奨統計を表示します。データベースの制約、セッション、またはCookieが持続することを確認する必要があります。

CheckPhp> = 8.1、Composer、およびWebserver; 2.CloneOrCreateProjectAndRunComposErinStall; 3.Copy.Env.Exampleto.ENVANDRUNPHPARTISANKEY :generate; 4.setDatabaseCredentialSin.EnvandrunphpartisanMigrate-- Seed; 5.StartServerWithPhpartisEnserve; 6.optionallyrunnpmins

シーダーファイルの作成:phpartisanmake:seederuserseederを使用してシーダークラスを生成し、実行方法のモデルファクトリーまたはデータベースクエリを介してデータを挿入します。 2。Databaseseederで他のシーダーを呼び出す:sulderseeder、Postseederなどを登録$ this-> call()を介して依存関係が正しいことを確認します。 3。シーダーの実行:PHPARTISANDBを実行する:種子をすべて登録したすべてのシーダーを実行するか、PHPARTISANMIGRATE:FRESS-シードを使用してデータをリセットして補充します。 4

新しいLaravelプロジェクトを作成し、サービスを開始します。 2。モデル、移行、コントローラーを生成し、移行を実行します。 3.ルート/api.phpのRESTFULルートを定義します。 4.ポストコントローラーに追加、削除、変更、クエリメソッドを実装し、JSON応答を返します。 5. PostmanまたはCurlを使用して、API関数をテストします。 6.オプションで、Sanctumを介してAPI認証を追加します。最後に、実用的なアプリケーションに適した、完全かつ拡張可能なLaravelRestapiの明確な構造を取得します。

Laravelでイベントやリスナーを使用することは、主なロジックを切り離す効果的な方法です。 1.イベントを作成し、リスナーを生成し、職人コマンドを介してEventserviceProviderにバインドできます。 2。実際の使用では、イベントは複数のリスナー、キューの失敗の再試行、リスナーを軽量に保ち、イベントの加入者を登録することに対応できることに注意する必要があります。 3.テストとデバッグ中に、イベントのトリガー、リスナーのバインディング、キュードライブステータスを確認し、queue_connection =同期して合成してトラブルシューティングを容易にする必要があります。 4.高度なヒントには、条件に応じてリスナーの実行または登録を動的に制御することが含まれますが、上級ユーザーにはお勧めします。これらの重要なポイントを習得すると、コード制御の改善に役立ちます
