我试图在网站上实现一个狮身人面像搜索服务器。该网站将用于内部追踪。狮身人面像实时更新属性
该数据库定义了一个状态,我已将其配置为sphinx中的一个属性。我需要这个实时更新而没有任何滞后。我也想使用磁盘索引,因此可以很容易地对索引进行定期更新,并避免使用SphinxQL。
我发现这可以通过sphinx API的UpdateAttribute方法来实现。 我想知道的是,如果可以从MySQL触发器调用UpdateAttribute()?我以为我可以有一个PHP脚本,它将获取请求中的所需输入,然后更新索引。请建议可行的实施方式,因为我还没有找到任何可行的方法。
如果您有任何其他实现搜索的方式,以便实时更新属性,请让我知道。
谢谢。
您使用的是SphinxSE存储引擎吗?还是一个独立的服务器守护进程?林不知道Id建议任何情况下的触发器,但如果它的守护进程,那么肯定不会。即使你使用PHP和Sphinx守护进程,你也可能会看到30毫秒的延迟。你能解释为什么这是不可接受的吗? – carpii 2012-07-10 11:27:40
@carpii不使用SphinxSE。数据库在MySQL中使用InnoDB。 “我不知道Id为两种情况都推荐一个触发器,但如果它是一个守护进程,那么肯定不会。” - 没有得到这个。你能否详细说明你提到的两个案例以及相关的建议。我想通过sys_exec和curl调用一个php脚本来实现这一点。然后脚本完成使用sphinxAPI更新索引的工作。为什么滞后会如此之高?还有另一种做同样事情的方法吗?开放给所有的建议,所以请在最后question.thnx – kapad 2012-07-11 16:09:32
SphinxSE是一个MySQL存储引擎,在那里你可以直接从MySQL查询Sphinx。另一种方法是运行searchd deamon,并使用API(PHP或其他)查询/更新Sphinx。听起来像你;重新使用守护进程/ API方法。我指的是30ms的延迟,假设你在单独的服务器上运行Sphinx守护进程,它的主观性,但是合理估计你在从PHP发布MySQL更新后能够多快地更新Sphinx。 – carpii 2012-07-15 00:30:05