2016-10-06 51 views
1

什么是弹性搜索中的离线和在线索引?我做了我的研究,但我找不到足够的资源来查看这些术语的含义。任何想法?还有什么时候我们需要重新索引?任何示例都会很棒弹性搜索中的离线和在线索引是什么?我们什么时候需要重新索引?

这里使用术语离线索引和在线索引。

https://spark-summit.org/2014/wp-content/uploads/2014/07/Streamlining-Search-Indexing-using-Elastic-Search-and-Spark-Holden-Karau.pdf

+1

不确定你的意思是'在线'或'离线'索引,你想做什么?关于重新索引 - 一旦您为索引Elasticsearch和索引文档设置了映射,Elasticsearch就不允许您更改这些映射(减去一些例外)。另一件不可能做的事情是在创建索引后更改碎片数量,希望更改这些碎片通常是重新索引数据的原因。 –

+0

感谢您的回复。我编辑了我的问题 – user1870400

回答

1

重建索引

最基本的形式,如果重新索引只是复制一个指数到另一个。

我已经使用这种形式的重新索引来改变映射。 Elasticsearch不允许您更改映射,因此如果您想更改映射,则必须使用新映射创建新索引(index2),然后重新索引。 reindex将使用旧索引的数据填充新映射。

下面的命令将移动从索引到索引2的所有内容。

curl -XPOST 'localhost:9200/_reindex?pretty' -d' 
{ 
    "source": { 
    "index": "index" 
    }, 
    "dest": { 
    "index": "index2" 
    } 
}' 

您还可以使用重建索引来填充一个旧索引的新索引。你可以通过使用几个参数来实现。以下示例将复制最新的1000个文档。

POST/_reindex { “大小”:1000, “源”:{ “索引”: “索引”, “排序”:{ “日期”: “降序”} }, “ DEST“:{ ”指数“: ”索引2“ }}

有关重建索引,请看看在official documentation更多的例子。

离线与联机索引

在线模式下的新的索引建立,而旧的索引被访问的读取和写入。旧索引上的任何更新也将应用于新索引。

在OFFLINE模式下,表被锁定在前面以进行任何读取或写入操作,然后从旧索引构建新索引。重建索引时,在表格上不允许读取或写入操作。只有当操作完成时,表格上的锁才会释放,并且读写操作再次被允许。

+0

感谢您的回复。你对reindex的回答非常好!我刚刚编辑了我的问题,并粘贴了一个链接,我在那里看到这些术语,并试图理解这些术语的含义 – user1870400

+0

谢谢,您链接的文档并不是指离线索引或联机索引。 –

+0

https://www.youtube.com/watch?v=jYicnlunDQ0该链接由该视频中的人员提供,她在本视频中定义了关于离线或在线索引的内容。对不起,请谅解 – user1870400

相关问题