当我启动这个批处理命令创build和合并三angular洲:
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf IDx_product_delta --rotate D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf --merge IDx_product_main IDx_product_delta --rotate
在searchd.log中发现这个错误和deltas没有合并到main中
[Fri Sep 25 15:34:42.549 2015] [ 2312] WARNING: rotating index 'IDx_product_main': cur to old rename Failed: rename D:Sphinxprojectdataproduct.spa to D:Sphinxprojectdataproduct.old.spa Failed: broken pipe
控制台输出是:
using config file 'D:Sphinxprojectproduct.conf'... merging index 'IDx_product_delta' into index 'IDx_product_main'... read 7.2 of 7.2 MB,100.0% done merged 11.5 Kwords merged in 0.127 sec ERROR: index 'IDx_product_main': Failed to delete 'D:Sphinxprojectdataproduct.new.spa': Permission denIEdtotal 671 reads,0.006 sec,15.3 kb/call avg,0.0 msec/call avg total 36 writes,0.004 sec,277.8 kb/call avg,0.1 msec/call avg
我的product.conf是:
狮身人面像是否值得用于非全文search?
每隔几分钟重新编制一个search引擎的索引
最好的方式来重新索引狮身人面像在Ubuntu的耐寒
狮身人面像不更新,直到服务重新启动?
Sphinx in C ++(linux)
source src_product_main { type = MysqL sql_host = localhost sql_user = root sql_pass = sql_db = database sql_port = 3306 # optional,default is 3306 sql_query_pre = REPLACE INTO sphinx_index_Meta(index_name,last_update) VALUES('IDx_prodotti_main',current_timestamp()) sql_query_range = SELECT MIN(ID),MAX(ID) FROM product WHERE deleted = 0 AND visible= 1 sql_range_step = 1000 sql_query = SELECT ID,text,last_update FROM product WHERE ID>=$start AND ID<=$end AND deleted = 0 AND visible = 1 sql_attr_timestamp = last_update } index IDx_product_main { source = src_product_main path = D:Sphinxprojectdataproduct ondisk_attrs = 1 stopwords = D:Sphinxprojectstopwords.txt min_word_len = 2 min_prefix_len = 0 min_infix_len = 3 ngram_len = 1 } source src_product_delta : src_product_main { sql_query_range = SELECT MIN(ID),last_update FROM product WHERE ID>=$start AND ID<=$end AND deleted = 0 AND visible = 1 } index IDx_product_delta : IDx_product_main { source = src_product_delta path = D:Sphinxprojectdeltaproduct ondisk_attrs = 1 stopwords = D:Sphinxprojectstopwords.txt min_word_len = 2 min_prefix_len = 0 min_infix_len = 3 ngram_len = 1 } indexer { mem_limit = 128M max_iosize = 1M } searchd { Listen = 9312 Listen = 9306:MysqL41 log = D:Sphinxprojectlogsearchd.log query_log = D:Sphinxprojectlogquery.log read_timeout = 5 clIEnt_timeout = 300 max_children = 30 pID_file = D:Sphinxprojectlogsearchd.pID seamless_rotate = 1 preopen_indexes = 0 unlink_old = 1 workers = threads # for RT to work binlog_path = D:Sphinxprojectdata }
我也尝试在windows 7和windows 8上,稳定2.2.10和testing版2.3.1-ID64-beta(r4926)具有相同的错误。
索引器作为SYstem用户运行一个cron(windows调度程序)
以SYstem用户身份运行的searchd服务
D: Sphinx project data 文件夹权限已完全控制SYstem
我该如何解决这个问题
更新为尤金Soldatov答案
我也尝试过(先命令less一点 – 旋转)
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf IDx_product_delta D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf --merge IDx_product_main IDx_product_delta --rotate
但在控制台输出中发现这个错误
Sphinx 2.2.10-ID64-release (2c212e0) copyright (c) 2001-2015,Andrew Aksyonoff copyright (c) 2008-2015,Sphinx TechnologIEs Inc (http://sphinxsearch.com) using config file 'D:Sphinxprojectproduct.conf'... indexing index 'IDx_prodotti_delta'... FATAL: Failed to lock D:Sphinxprojectdeltaprodotti.spl: No error,will not index. Try --rotate option. Sphinx 2.2.10-ID64-release (2c212e0) copyright (c) 2001-2015,Sphinx TechnologIEs Inc (http://sphinxsearch.com) using config file 'D:Sphinxprojectproduct.conf'... merging index 'IDx_prodotti_delta' into index 'IDx_prodotti_main'... read 7.2 of 7.2 MB,100.0% done merged 11.5 Kwords merged in 0.214 sec ERROR: index 'IDx_prodotti_main': Failed to delete 'D:Sphinxprojectdataprodotti.new.spa': Permission denIEdtotal 20136 reads,0.071 sec,30.9 kb/call avg,0.012 sec,283.3 kb/call avg,0.3 msec/call avg
在searchd.log中发现了这个错误
[Wed Sep 30 09:09:29.371 2015] [ 4244] rotating index 'IDx_prodotti_main': started [Wed Sep 30 09:09:29.381 2015] [ 4244] WARNING: rotating index 'IDx_prodotti_main': cur to old rename Failed: rename D:Sphinxprojectdataprodotti.spa to D:Sphinxprojectdataprodotti.old.spa Failed: broken pipe [Wed Sep 30 09:09:29.381 2015] [ 4244] rotating index: all indexes done
更新2
也尝试在两个命令之间插入睡眠
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf IDx_product_delta --rotate timeout /t 60 D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf --merge IDx_product_main IDx_product_delta --rotate
控制台输出:
ERROR: index 'IDx_prodotti_main': Failed to delete 'D:Sphinxprojectdataprodotti.new.spa': Permission denIEdtotal 20137 reads,0.072 sec,30.9 kb/c
更新3:问题解决
问题解决了狮身人面像的人在这里
http://sphinxsearch.com/BUGs/vIEw.PHP?ID=2335
这种行为的原因是–rotate命令是异步的,所以当你运行第二个命令时:
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf --merge IDx_product_main IDx_product_delta --rotate
首先可能会继续使用索引IDx_product_delta:
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf IDx_product_delta --rotate
,所以它被锁定。
如果可能的话,在第一个命令中删除–rotate选项。
更新:
似乎你需要在第一个命令 – 旋转选项。 因此,您可以测量需要完成的平均时间,并在两个命令之间插入睡眠。 例如,30秒:
D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf IDx_product_delta --rotate timeout /t 30 D:Sphinxbinindexer.exe --config D:Sphinxprojectproduct.conf --merge IDx_product_main IDx_product_delta --rotate
总结以上是内存溢出为你收集整理的狮身人面像:权限被拒绝/在deltas合并中断pipe道全部内容,希望文章能够帮你解决狮身人面像:权限被拒绝/在deltas合并中断pipe道所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)