时间:2021-07-01 10:21:17 帮助过:5人阅读
我查了下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