1

我最近开始使用 Apache Solr,目前正试图找出对 XML 文档语料库的索引进行基准测试的最佳方法。我基本上对磁盘上的吞吐量(索引的文档/秒)和索引大小感兴趣。

我在 Ubuntu 上做这一切。

基准技术

* 运行以下 5 次并获得平均总时间*

  • 索引文件 [ curl http://localhost:8983/solr/core/dataimport?command=full-import]
    • 当状态为“空闲”时,从 XML 响应中获取“所用时间”名称属性 [curl http://localhost:8983/solr/core/dataimport]
    • 获取“数据/索引”目录的大小
  • 删除索引 [ 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 响应属性的信息(请参阅下面的示例输出)。例如,我想知道QTimeTime 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:

我建议您应该尝试索引超过 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 回答