共計 1309 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 ElasticSearch 如何修改 mapping,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
目前網上來講,具體實現代碼很少,我找了好久只找到了 Python 的實現。本文基于 ES 官方代碼的 PHP SDK 和 bulk 有一個遷移實現。
?php
require vendor/autoload.php
$hosts[hosts] = array(
host = 127.0.0.1 ,
port = 9200 ,
scheme = http
$client = Elasticsearch\ClientBuilder::create()
- setSSLVerification(false)
- setHosts($hosts)
- build();
for ($i = 1; $i = 10; $i++) { if ($i != 10) {
$params[index] = index-0 .$i;
}
else { $params[ index] = index- .$i;
}
echo $params[index]. \r\n
$params[type] = raw
$params[scroll] = 120s
$params[size] = 50000;
$params[body] = array(
query = array(
match_all = array()
)
);
$response = $client- search($params);
$step = 1;
while (isset($response[ hits][hits]) count($response[ hits][hits]) 0) {
echo $step++. \t
$scroll_id = $response[ _scroll_id
unset($response);
$response = $client- scroll(
array(
scroll_id = $scroll_id,
scroll = 120s
)
);
if (count($response[ hits][hits]) 0) {
$bulk = array(index = $params[ index]. -reindex , type = $params[ type
foreach ($response[ hits][hits] as $key= $val) { $bulk[ body][]=array(
index = array(
_id = $val[_id]
),
);
$bulk[body][] = $val[ _source
}
// insert reindex
$res = $client- bulk($bulk);
unset($bulk);
} else {
break;
}
}
}
關于“ElasticSearch 如何修改 mapping”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
正文完