Получение ядер Solr через Powershell

#powershell #solr #powershell-2.0 #solr4

#powershell #solr #powershell-2.0 #solr4

Вопрос:

Есть ли способ использовать Powershell для получения списка ядер Solr, запущенных в моем локальном экземпляре Solr? Я использую Solr 4.10.1 и использую Powershell 2.0.

Я хотел бы создать текстовый файл с именами ядер:

 somecore1
somecore2
etc.
  

Я смог получить список своих ядер в формате XML, нажав на этот URL: 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:

Сначала вам нужно загрузить XML-ответ в переменную XML:

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

Теперь вы можете вывести список ядер с помощью этого синтаксиса:

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

Этот синтаксис гласит: «В XML-документе получите дочерний элемент корневого элемента «response», затем возьмите третий дочерний элемент «lst», затем выполните итерацию по его дочерним элементам и выведите атрибут «name».

Чтобы сохранить как файл, перенаправьте:

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

Примечания: