2
我正在創建搜索應用程序。當我將數據重新索引到elasticsearch時,重新索引時不應該停機。我想讓零宕機時間的reindexing進程。我試圖這樣做:如何在Elasticsearch php客戶端API中查找別名索引
找到帶有別名的舊索引。 創建新的索引,並用新的數據填充 刪除別名並刪除舊索引 給新指數別名
我們怎樣才能做到這一點使用PHP客戶端庫。
我正在創建搜索應用程序。當我將數據重新索引到elasticsearch時,重新索引時不應該停機。我想讓零宕機時間的reindexing進程。我試圖這樣做:如何在Elasticsearch php客戶端API中查找別名索引
找到帶有別名的舊索引。 創建新的索引,並用新的數據填充 刪除別名並刪除舊索引 給新指數別名
我們怎樣才能做到這一點使用PHP客戶端庫。
我不明白爲什麼人們給他的是低票,問題很簡單,彈性搜索的文檔不容易遵循!
反正這裏的解決方案:
class SomeClass
{
/** @var \Elasticsearch\Client */
private $client;
/**
* @param \Elasticsearch\Client $client
*/
public function __construct(\Elasticsearch\Client $client)
{
$this->client = $client;
}
/**
* @param string $aliasName
*
* @return null|string
*/
public function findIndexNameByAlias($aliasName)
{
$aliases = $this->client->indices()->getAliases();
foreach ($aliases as $index => $aliasMapping) {
if (array_key_exists($aliasName, $aliasMapping['aliases'])) {
return $index;
}
}
return null;
}
}
$someClass = new SomeClass(new \Elasticsearch\Client());
echo "Index associated with 'MyAlias': " . $someClass->findIndexNameByAlias('MyAlias');
請分享一些代碼,以幫助我們來幫助你 – legrandviking
歡迎StackOverflow上。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在您發佈代碼並準確描述問題之前,我們無法有效幫助您。 StackOverflow不是一個編碼或教程服務。 – Prune