これは、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 サイトの他の関連記事を参照してください。