旋转后不能立即合并狮身人面像三角洲指数?

时间:2015-02-15 01:02:28

标签: sphinx

我注意到我的delta索引没有被合并到主索引中,在做了一些调查后发现,当我尝试在旋转delta索引后立即将delta索引合并到主索引时会发生这种情况。

这是我在开发计算机上运行的命令(Windows):

C:\Sphinx\bin\indexer.exe --config C:\wamp\www\path\to\sphinx\etc\sphinx_windows.conf my_delta_index --rotate && C:\Sphinx\bin\indexer.exe --config C:\wamp\www\path\to\sphinx\etc\sphinx_windows.conf --merge my_index my_delta_index --rotate

输出显示两个命令都成功执行,但是搜索中的项目没有显示。

当我尝试运行该命令的第一部分时:

C:\Sphinx\bin\indexer.exe --config C:\wamp\www\path\to\sphinx\etc\sphinx_windows.conf my_delta_index --rotate

几秒钟后跟随:

C:\Sphinx\bin\indexer.exe --config C:\wamp\www\path\to\sphinx\etc\sphinx_windows.conf --merge my_index my_delta_index --rotate

一切正常。

我还没有在文档中找到任何暗示这一点的内容,但是在将delta索引合并到主索引之前,你是否需要等待一段时间?

1 个答案:

答案 0 :(得分:1)

--rotate本质上是异步的 - 索引器构建索引的新版本,但只是告诉'搜索并激活'它。 searchd可以做到这一点。它可能会立即生效,也可能需要很长时间。

所以当'合并'发生了,很可能新指数还没有被激活&#39 ;;所以合并过程,只是重新合并旧版本的delta。 (旧版本仍在使用,直到轮换完成)

但它也有可能是它没有完成的第二次旋转,搜索还没有完成加载新合并的主要部分,所以你仍然在搜索旧版本。

...是的,你需要在运行--rotate样式reindex之后再等待,然后再对索引做更多的事情。没有内置命令来监视进程,所有可以做的是查看searchd日志文件,或者查看索引的文件名,因为旧的和新的都是切换的。