これは、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>');
「星」という単語を検索するとします。 結果の1つには、次のように読まれる概要があります。
世界とスタートレックの最高の作品についての歴史と排他的なクリップ:次世代
$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>');
ご覧のとおり、Solrは「ho」 - $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 . . .
confディレクトリには、インスタンスの構成ファイルが含まれています。 少なくとも、このディレクトリにはschema.xmlとsolrconfig.xmlファイルが含まれている必要があります。
…instancenameは新しいディレクトリの名前です。アプリケーションによっては、protwords.txtに単語を追加する必要があることがわかります。 このファイルには、「茎になっていない」、つまり基本的なフォームに縮小された保護された単語のリストが含まれています。たとえば、「尋ねられた」は「尋ねる」になり、「作業」は「仕事」になります。 時々、語り出すことは単語を「修正」しようとし、おそらく最後に数字の誤った文字が誤っていると思うものを削除しようとします。 あなたは地理的領域を扱っていて、「メイン」が「メイン」に由来することを発見するかもしれません。
solrおよびsolariumでオートコンプリートを実装するには、solr構成ファイルに提案者の作成が含まれます。この提案者は、ユーザークエリの提案を提供するために使用されます。提案者がセットアップされたら、Solariumの提案者クエリを使用して提案を得ることができます。提案者クエリは、ユーザーの入力に基づいて提案のリストを返し、ユーザーに表示できます。別のソフトウェア。 Solariumは、強力な検索プラットフォームであるSolRと対話するためのAPIを提供するPHPライブラリです。一方、Stellariumは、コンピューター用の無料のオープンソースプラネタリウムです。肉眼、双眼鏡、または望遠鏡で見られるものと同じように、3Dの現実的な空を示しています。 、まず、SOLRサーバーの構成を使用してクライアントインスタンスを作成する必要があります。次に、クライアントのcreateSelect関数を使用して選択クエリを作成できます。返品するフィールド、クエリ文字列、任意のフィルターなど、クエリにさまざまなパラメーターを設定できます。クエリがセットアップされたら、クライアントの実行機能を使用して実行できます。これにより、個々のドキュメントにアクセスするために繰り返す結果セットが返されます。
以上がSOLRでSolariumを使用して検索 - Advancedの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

PHPでのオートローディングは、必要に応じてクラスファイルを自動的にロードし、メモリの使用を削減し、コード組織を強化することでパフォーマンスを向上させます。ベストプラクティスには、PSR-4の使用とコードを効果的に整理することが含まれます。

PHPストリームは、一貫したAPIを介したファイル、ネットワークソケット、圧縮形式などのリソースの処理を統合し、複雑さを抽象化し、コードの柔軟性と効率を高めます。

この記事では、PHPでファイルアップロードサイズの管理を管理し、2MBのデフォルト制限とPHP.ini設定を変更してそれを増やす方法に焦点を当てています。

この記事では、PHP 7.1で導入されたPHPのヌル可能なタイプについて説明し、変数またはパラメーターが指定されたタイプまたはnullのいずれかを可能にします。読みやすさの改善、タイプの安全性、明示的な意図などの利点を強調し、宣言する方法を説明します

この記事では、プログラミングのunset()とlink()関数の違いについて説明し、目的とユースケースに焦点を当てています。 unset()はメモリから変数を削除しますが、link()はファイルシステムからファイルを削除します。どちらもEFFECにとって重要です


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









