通过Powershell获取Solr核心

时间:2016-10-08 20:31:16

标签: powershell solr powershell-v2.0 solr4

有没有办法使用Powershell获取在我的本地Solr实例中运行的Solr核心列表?我正在运行Solr 4.10.1,并且正在使用Powershell 2.0。

我想创建一个核心名称的文本文件:

somecore1
somecore2
etc.

我可以通过点击此URL获取XML格式的核心列表:http://localhost:8983/solr/admin/cores返回XML的相关详细信息如下:

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">2663</int>
  </lst>
  <str name="defaultCoreName">collection1</str>
  <lst name="initFailures"/>
  <lst name="status">
    <lst name="somecore1">
       <!-- Details removed -->
    </lst>
    <lst name="somecore2">
      <!-- Details removed -->
    </lst>
  </lst>
</response>

1 个答案:

答案 0 :(得分:1)

首先,您需要将XML响应加载到XML变量:

[xml]$cores = (New-Object System.Net.WebClient).DownloadString("http://localhost:8983/solr/admin/cores")

现在您可以使用以下语法输出核心列表:

$cores.response.lst[2].lst | % {$_.name}

这种语法表明,&#34;在XML文档中,获取根元素的子元素&#34;响应&#34;,然后取第三个孩子&#34; lst&#34;,然后遍历其子元素并输出&#34;名称&#34;属性。

要保存为文件,请重定向:

$cores.response.lst[2].lst | % {$_.name} > c:\temp\cores.txt

备注: