Heim  >  Artikel  >  Backend-Entwicklung  >  sphinx 的 updateAttributes 方法

sphinx 的 updateAttributes 方法

WBOY
WBOYOriginal
2016-06-06 20:37:471071Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn