首頁 >後端開發 >php教程 >sphinx 的 updateAttributes 方法

sphinx 的 updateAttributes 方法

WBOY
WBOY原創
2016-06-06 20:37:471140瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn