有没有办法使用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>
答案 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
备注:强>