弹性搜索中的离线和在线索引是什么?我做了我的研究,但是找不到足够的资源来看看这些术语的含义是什么?任何的想法?还有什么时候我们需要重新索引?任何例子都很棒
此处使用术语离线和在线索引。
答案 0 :(得分:2)
如果重新索引只是将一个索引复制到另一个索引,那么最基本的形式。
我使用这种形式的重建索引来更改映射。 Elasticsearch不允许您更改映射,因此如果要更改映射,则必须使用新映射创建新索引(index2),然后重新编制索引。 reindex将使用旧索引的数据填充该新映射。
下面的命令会将所有内容从索引移动到index2。
curl -XPOST 'localhost:9200/_reindex?pretty' -d'
{
"source": {
"index": "index"
},
"dest": {
"index": "index2"
}
}'
您还可以使用重建索引来填充旧索引的一部分。您可以使用几个参数来完成此操作。以下示例将复制最新的1000个文档。
POST /_reindex
{
"size": 1000,
"source": {
"index": "index",
"sort": { "date": "desc" }
},
"dest": {
"index": "index2"
}
}
有关重建索引的更多示例,请查看official documentation。
在ONLINE模式下,构建新索引,同时可以读取和写入旧索引。旧索引的任何更新也将应用于新索引。
在OFFLINE模式下,表先被锁定以进行任何读取或写入,然后新索引将从旧索引构建。在重建索引时,表上不允许读取或写入操作。只有在操作完成后,才会释放对表的锁定,并允许再次读取和写入。