Solrチュートリアル

3400 ワード

プレビュー
このドキュメントでは、solrの実行方法、データ操作方法について簡単に説明します.
環境
このチュートリアルではsolr 4.9を使用します.必要です...1.Java 1.7以上.2.solr、アドレスをダウンロードします.
スタート
solr圧縮パッケージを解凍し、「example」フォルダに入ります.
Solrは多くのJavaコンテナで実行できます.このチュートリアルではjettyを使用します.
exampleフォルダのstartを実行します.JAr,java -jar start.jarはjettyを使用してsolrのwarパッケージを実行することができ、プロファイルはexampleのconfigsを使用します.上記のコマンドはjettyサーバを起動し、ポートのデフォルトは8983で、コンソールにログが印刷されます.に合格http://localhost:8983/solr/をクリックして、solrの管理者ページを開きます.
データ索引
Solrサーバはすでに起動していますが、データはありません.solrのインデックスはpostコマンドでadd(update、delete、pending adds and deletes)ドキュメントに変更できます.実装方法の詳細.
exampledocsディレクトリには、コマンドpostをsolrに使用できるサンプルファイルが含まれています.ここではjava-jar postを使用します.JAr-hという方式です.
java -jar post.jar solr.xml monitor.xml

Solrに2つのドキュメントがインデックスされ、コミットされました.開くことができますhttp://localhost:8983/solr/#/collection1/queryこのリンクで実験を行い、「q」という入力ボックスに「solr」と入力し、「Excute Query」をクリックするとブラウザがhttp://localhost:8983/solr/collection1/select?q=solr&wt=xmlダイアログを開きます.
すべてのxmlドキュメントをSolrに追加できます.java -jar post.jar *.xmlです.
Solr Query Syntaxを使用してデータをクエリーできます.
  • video
  • name:video
  • +video +price:[* TO 400]

  • Solrにデータをインポートする方法はいくつかあります.+データベースからデータをData Import Handler(DIH)でインポート+CSVファイルをロード(ファイル内のデータはカンマで区切られています)、csvファイルはExcelとMysqlでエクスポートできます.+Post jsonドキュメント+ワードやpdfのようなSolr Cellを介してバイナリドキュメントをインデックスします.+Javaまたはsolrでサポートされている他の言語で、プログラムでsolrに作成してインポートします.
    Updateデータ
    solr.xmlというドキュメントは2回インポートされましたが、solrキーワードを検索したときも結果が得られました.これは、各ドキュメントに一意性のフィールド「id」があるためです.solrにドキュメントを追加すると、idが同じ場合、solrはこのドキュメントを更新します.私たちはhttp://localhost:8983/solr/#/collection1/plugins/core?entry=searcherこのページのnumDocsとmaxDocを検証します.
    numDocsはインデックス内のdocumentの数を表します(この数はsolr内のxmlファイルの数よりも大きい場合があります.単一のxmlファイルに複数のdocumentが含まれる可能性があるためです).numDocsはmaxDocsよりも大きいかもしれません.一部のドキュメントは削除される可能性がありますが、インデックスは更新されていません.同じxmlファイルを何度もpostしてもnumDocsは増加しません.idが同じなので、solrはupdate動作をしています.
    これらのxmlファイルを編集し、その内容を変更し、java -jar post.jarコマンドを再実行して検索すると、さっき変更した内容が表示されます.
    Deleteデータ
    私たちはsolr postにコマンドを削除することができます.idを指定するとdocumentを削除します.このコマンドのqueryが複数のdocumentに一致する場合は、複数のdocumentを削除します(注意).次のコマンドは、指定したdocumentを削除します.
        java -Ddata=args -Dcommit=false -jar post.jar "<delete><id>SP2514N</id></delete>"

    上のコマンドでは、commit=falseを指定しているので、インデックスが更新されていないため、削除したばかりのdocumentを取得することもできます.statistics pageというupdateHandlerページを使用すると、documentの有効化を削除するプロセスが表示されます.deletesByIdという値は0に下がり、cumulative_deletesByIdとautocommitの2つが増加した.
    次にqueryを使用してdocumentを一括削除する例を示します.
        java -Dcommit=false -Ddata=args -jar post.jar "<delete><query>name:DDR</query></delete>"

    以前の変更をすぐに有効にしたい場合は、solrに新しいsearcherを使用するように命令することができます.
        Java -jar post.jar -

    今、前のqueryを再実行すると、削除されたdocumentが見つかり、検索されなくなります.updateHandlercommitの個数とsearcherのnumDocsをstatistics pageで再び見ることができます.
    新しいsearcherを使用すると、高いコスト(時間、メモリなど)がかかる可能性がありますので、changesをたくさん蓄積してsolrに一括してコミットし、solrにインデックスを再構築させるのが望ましいです.もう1つのコマンドoptimizeは、commitコマンドと同じ操作を完了しますが、すべてのインデックススライスを同じスライスにmergeするように強制します.これはリソースがかかりますが、検索速度を高めることができます.インデックスが頻繁に変化しない場合は、試してみてください.
    すべてのupdateコマンドは、xmlとjsonの2つのフォーマットを使用できます.
    次のチュートリアルのために、exampledocsフォルダのxmlファイルをsolrにpostします.
        java -jar post.jar *.xml

    queryデータ
    読み続ける