SOLRでSolariumを使用して検索 - Advanced
これは、SolariumとともにApacheのSolr検索実装を使用するシリーズの4番目の最後の部分です。PHPライブラリは、まるでそれがネイティブであるかのようにアプリケーションに統合します。
solrとsolariumをインストールして構成し、映画を検索するためのサンプルアプリケーションの構築を開始しました。また、ファセット検索を調べました。
最初に、IDで強調表示されているコンポーネントから強調表示されたドキュメントを抽出する必要があります。
ハイライトされたフィールドは単にテキストを返すわけではありませんが、代わりに、テキストの「スニペット」の配列を返します。 その特定のフィールドに一致していない場合 - たとえば、検索がタイトルで一致しているが概要ではない場合、その配列は空になります。
ハイライトされたドキュメントの概要アレイには、3つの項目が含まれます
オリジナルのスタートレックシリーズの後。次世代は星の最長ランニングシリーズ
各検索結果が、検索結果ドキュメントと強調表示されたドキュメントの間のフィールドを本質的に組み合わせて一致させる方法に注目してください。後者は事実上、前者のサブセットです。スキーマに応じて、すべてのフィールドを強調表示されたバージョンで使用できる場合があります。
提案者をセットアップするには、solrconfig.xmlファイルで構成する必要があります。 それを開けて、他の
solrを再起動すると、Webブラウザを介して提案クエリを実行してみてください:
*ho ** reas、** ho ** sues、** ho ** rrorおよび** ho ** meの4つの可能な試合を返しました。 *HOME
このコンポーネントを使用して、検索ボックスのオートコンプリートを作成しましょう。これは、ユーザーがクエリを入力するときに一般的な検索用語を示唆します。
レイアウトにjquery ui(およびjquery自体)を含める:
jQuery UIテーマを含めます:
そして最後に、JSをいくつか追加して、オートコンプリートを初期化します:
それはすべてです - いくつかの検索を実行して試してみてください。 配列ベースの構成
スタートアップでは、solrは、Core.propetiesというファイルを見つけたときに識別するコアを探して、指定されたホームディレクトリを横断します。 これまでのところ、Collection1というコアを使用しています。3つの重要な項目が含まれていることがわかります。
データディレクトリにはインデックスが保持されます。 このディレクトリの場所はオーバーライドできます。存在しない場合は作成されます。
その後、solr。 Webブラウザの管理Webインターフェイスを介して新しいコアを追加することもできます。左側のコア管理者をクリックして、コアを追加します。
要約 詳細については、SOLRリファレンスガイドをPDFとしてダウンロードするか、Solariumドキュメントを参照してください。
高度な検索にsolrを使用してソラリウムを使用することについて、よく尋ねられる質問(FAQ)SolRのハイライト機能をSolariumで利用して、ドキュメントで一致した単語またはフレーズをマークすることにより、検索結果の可視性を強化し、フルとスニペットベースのハイライトオプションの両方を提供します。
solrのesssonspresserコンポーネントを使用してオートコンプリート機能を検索アプリケーションに統合します。これにより、パターンマッチングのインデックスフィールドを分析して、クエリ項を動的に提案します。
ソラリウムでクエリをセットアップするためのアレイベースの構成を採用し、検索パラメーターと結果処理の詳細なカスタマイズを可能にします。
またはフィールドごとの設定を使用することもできます:
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
世界とスタートレックの最高の作品についての歴史と排他的なクリップ:次世代
$hl = $query->getHighlighting();
$hl->getField('title')->setSimplePrefix('<strong>')->setSimplePostfix('</strong>');
$hl->getField('synopsis')->setSimplePrefix('<span style="background:yellow;">')->setSimplePostfix('</span>');
最初に行うことは、検索を実行する直前に、以下を追加することにより、App/Controllers/homeController.phpを変更することです。
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
提案者コンポーネントは、不完全なクエリ入力に基づいてクエリ項を提案するために使用されます。 基本的に、特定のフィールドのインデックスを調べ、特定のパターンに一致する検索用語を抽出します。 その後、これらの提案を頻度ごとに注文して、検索の関連性を高めることができます。
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
$hl = $query->getHighlighting();
$hl->getField('title')->setSimplePrefix('<strong>')->setSimplePostfix('</strong>');
$hl->getField('synopsis')->setSimplePrefix('<span style="background:yellow;">')->setSimplePostfix('</span>');
$highlightedDoc = $highlighting->getResult($document->id);
if($highlightedDoc){
foreach($highlightedDoc as $field => $highlight) {
echo implode(' (...) ', $highlight) . '<br/>';
}
}
if($highlightedDoc){
$highlightedTitle = $highlightedDoc->getField('title');
}
$hl = $query->getHighlighting();
$hl->setSnippets(5);
// . . . as before . . .
…instancenameは新しいディレクトリの名前です。アプリケーションによっては、protwords.txtに単語を追加する必要があることがわかります。 このファイルには、「茎になっていない」、つまり基本的なフォームに縮小された保護された単語のリストが含まれています。たとえば、「尋ねられた」は「尋ねる」になり、「作業」は「仕事」になります。 時々、語り出すことは単語を「修正」しようとし、おそらく最後に数字の誤った文字が誤っていると思うものを削除しようとします。 あなたは地理的領域を扱っていて、「メイン」が「メイン」に由来することを発見するかもしれません。
solrおよびsolariumでオートコンプリートを実装するには、solr構成ファイルに提案者の作成が含まれます。この提案者は、ユーザークエリの提案を提供するために使用されます。提案者がセットアップされたら、Solariumの提案者クエリを使用して提案を得ることができます。提案者クエリは、ユーザーの入力に基づいて提案のリストを返し、ユーザーに表示できます。別のソフトウェア。 Solariumは、強力な検索プラットフォームであるSolRと対話するためのAPIを提供するPHPライブラリです。一方、Stellariumは、コンピューター用の無料のオープンソースプラネタリウムです。肉眼、双眼鏡、または望遠鏡で見られるものと同じように、3Dの現実的な空を示しています。 、まず、SOLRサーバーの構成を使用してクライアントインスタンスを作成する必要があります。次に、クライアントのcreateSelect関数を使用して選択クエリを作成できます。返品するフィールド、クエリ文字列、任意のフィルターなど、クエリにさまざまなパラメーターを設定できます。クエリがセットアップされたら、クライアントの実行機能を使用して実行できます。これにより、個々のドキュメントにアクセスするために繰り返す結果セットが返されます。
以上がSOLRでSolariumを使用して検索 - Advancedの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...
