共计 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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
正文完