可以在solr usinf tlog文件中还原文档

时间:2018-09-04 07:25:32

标签: solr

每次在solr中添加/更新文档时,tlog文件都会维护每次提交的请求查询。

示例: 当我使用更新命令提交时:

curl -XPOST -H 'Content-Type: application/json' 'http://localhost:8983/solr/sample_list/update' --data-binary '{"add":{"doc":{ "id":"7","name":"test dfasdata jan565765"}},"commit":{}}'

日志文件内容如下:

^ B
^ B)SOLR_TLOGA'strings <83>“ id $ name)版本 ^ @ ^ @ ^ @)<83> A ^ G ^VYîÖ·^ @ ^ @ ^ @ ^ @ ^ P ^ C ^ H <80> ^ @ ^ @á!7â7testdfasdatajan565765ã^ G ^VYîÖ·^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ 8 <83> D`-SOLR_TLOG_END ^ @ ^ @ ^ @ ^ Q

是否可以在tlog文件中执行请求查询以恢复格式(不是可读格式)?

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,我找到了解决方法(解决方法): 打开您的tlog文件并删除文件“ƒD`-SOLR_TLOG_END”的末尾,然后启动solr,将tlog文件的内容编入索引/提交给索引。 在我的测试用例中,我只在该文件夹中放置一个tlog文件。

要找出应删除的字符,只需在管理Web界面的“文档”下添加一个示例文档,该文档的“提交范围”值为100000,之后立即停止solr。 在solr进行提交之前停止solr是很重要的(在时间之内的提交应该很高)。 然后将新的tlog文件复制到桌面或其他文件夹上。 再次启动solr并比较两个文件,然后将tlog添加到索引solr后,您会看到在solr后面附加了“ƒD`-SOLR_TLOG_END”字符串。

简短信息: 如果solr在没有提交的情况下发生故障,则tlog用于将文档添加到索引。如果solr再次启动,则使用tlog将未提交的文档添加到索引中。

致谢 疯子