1

私は最近、Apache Solr をいじり始め、現在、XML 文書のコーパスの索引付けをベンチマークする最良の方法を見つけようとしています。私は基本的に、スループット (1 秒あたりのインデックス作成されたドキュメント) とディスク上のインデックス サイズに関心があります。

私はこれをすべてUbuntuで行っています。

ベンチマーク手法

* 次の 5 回実行して、合計所要時間の平均を取得します*

  • 索引文書 [ curl http://localhost:8983/solr/core/dataimport?command=full-import]
    • ステータスが「アイドル」の場合、XML レスポンスから「所要時間」の名前属性を取得する [curl http://localhost:8983/solr/core/dataimport]
    • 「data/index」ディレクトリのサイズを取得
  • インデックスを削除 [ curl http://localhost:8983/solr/core/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8']
  • コミット [ curl http://localhost:8983/solr/w5/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8']
  • ドキュメントの再インデックス

質問

  1. インデックス作成されたドキュメントの数を平均合計所要時間で割って、スループットを計算するつもりです。これでいいですか?
  2. 目的を達成するために使用できるツール (クエリ ベンチマーク用の SolrMeter など) または標準スクリプトは既に利用可能ですか? 車輪の再発明はしたくない...
  3. 私のアプローチは大丈夫ですか?
  4. data/index/ ディレクトリで「du」を実行するのではなく、インデックス サイズを取得する簡単な方法はありますか?
  5. XML 応答属性を解釈する方法に関する情報はどこにありますか (以下のサンプル出力を参照)。たとえば、QTimeとのTime taken値の違いを知りたいとします。

* スループットを取得するために使用される XML 応答*

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
  <int name="status">0</int>
    <int name="QTime">0</int>
  </lst>
  <lst name="initArgs">
    <lst name="defaults">
      <str name="config">w5-data-config.xml</str>
    </lst>
  </lst>
  <str name="status">idle</str>
  <str name="importResponse"/>
  <lst name="statusMessages">
    <str name="Total Requests made to DataSource">0</str>
    <str name="Total Rows Fetched">3200</str>
    <str name="Total Documents Skipped">0</str>
    <str name="Full Dump Started">2012-12-11 14:06:19</str>
    <str name="">Indexing completed. Added/Updated: 1600 documents. Deleted 0 documents.</str>
    <str name="Total Documents Processed">1600</str>
    <str name="Time taken">0:0:10.233</str>
  </lst>
  <str name="WARNING">This response format is experimental.  It is likely to change in the future.</str>
</response>
4

1 に答える 1

1

質問 1 へ:

複数の XML (データセットが異なる) ファイルのインデックスを作成し、指定された結果を比較することをお勧めします。これは、かかった時間をドキュメントの数で単純に割ってもよいかどうかを知る方法です。

質問 2 へ:

これらのツールは見つかりませんでした。短い Java アプリケーションを開発して、自分で作成しました。

質問 3 へ:

どちらのアプローチですか?質問1への回答にリンクします...

質問 4 へ:

インデックス フォルダのサイズは、インデックス全体の正しいサイズを示します。なぜそれを使用したくないのですか?

質問 5 へ:

投稿された XML で取得した結果は、XSL ファイルを介して転送されます。/bin/solr/conf/xslt フォルダーにあります。用語の正確な意味を調べることができ、独自の XSL を記述して結果と情報を表示することができます。注: 新しい XSL ファイルを作成する場合は、solrconfig.xml の設定を変更する必要があります。変更を加えたくない場合は、既存のファイルを編集します。

編集:違いは、Qtime が取得された時間値の丸められた値であることだと思います。Qtime には偶数しかありません。

よろしくお願いします

于 2012-12-12T08:52:42.313 に答える