欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

sphinx 的 updateAttributes 方法

程序员文章站 2024-02-11 16:18:10
...
sphinx运行的时候执行了 updateAttributes 。执行之后可以查找到更新后的数据。
但过了一段时间好像又变回了原来的数据。不是很确定,但应该是这样。

我查了下updateAttributes相关的内容,说这个是修改当前内存里的数据,如果要修改到文件,就需要重新启动引擎。

我的问题是,修改了内存里的数据是不是说明这个值在sphinx重启之前一直保存在内存里?
还是,当这个文档从内存里移出的时候这些变更信息也随之移出?导致下次该文档重新导入内存的时候只能导入旧数据?

我们的引擎一直是保持开着的,不会对他进行重启。这个有没有什么弊端呢?

回复内容:

sphinx运行的时候执行了 updateAttributes 。执行之后可以查找到更新后的数据。
但过了一段时间好像又变回了原来的数据。不是很确定,但应该是这样。

我查了下updateAttributes相关的内容,说这个是修改当前内存里的数据,如果要修改到文件,就需要重新启动引擎。

我的问题是,修改了内存里的数据是不是说明这个值在sphinx重启之前一直保存在内存里?
还是,当这个文档从内存里移出的时候这些变更信息也随之移出?导致下次该文档重新导入内存的时候只能导入旧数据?

我们的引擎一直是保持开着的,不会对他进行重启。这个有没有什么弊端呢?

sphinx文档信息的存储模式,包括有none,extern,inline。默认是extern,当使用extern的时候,文档的属性是存放在另外一个文件(spd)中的,但是当启动searchd的时候,会把这个文件加载到内存中。

移除后是会丢失的,可以通过attr_flush_period控制每隔多少时间写回到磁盘中。

参考资料:
http://www.coreseek.cn/docs/coreseek_4.1-sphinx_2.0.1-beta.html
http://www.cnblogs.com/yjf512/p/3598332.html

相关标签: sphinx php