Ruby on rails 认为Sphinx min_Index_len和delta不在生产服务器上工作

Ruby on rails 认为Sphinx min_Index_len和delta不在生产服务器上工作,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,我们的生产服务器上的TS最小拐点长度和增量索引存在问题 我在OSX上的开发模式下工作,但当我们通过capistrano部署到运行passenger/apache的Ubuntu服务器上时,delta索引和min_Index_len似乎都停止了 我们以ubuntu用户的身份部署,该用户也运行apache。我们昨天遇到了一个问题,生产文件夹并没有被创建,但我们手动创建了,我现在可以在那个里看到一个增量文件列表 我已经看完了文件 我可以在创建记录时看到delta标志设置为true,但在搜索时找不到记录。

我们的生产服务器上的TS最小拐点长度和增量索引存在问题

我在OSX上的开发模式下工作,但当我们通过capistrano部署到运行passenger/apache的Ubuntu服务器上时,delta索引和min_Index_len似乎都停止了

我们以ubuntu用户的身份部署,该用户也运行apache。我们昨天遇到了一个问题,生产文件夹并没有被创建,但我们手动创建了,我现在可以在那个里看到一个增量文件列表

我已经看完了文件

我可以在创建记录时看到delta标志设置为true,但在搜索时找不到记录。一旦我们重建索引(作为ubuntu用户),我就可以找到记录,但只能找到完整的字符串

我的sphinx.conf文件如下:

production:
    enable_star: 1
    min_infix_len: 3
    bin_path: "/usr/local/bin"
    version: 2.0.5
    mem_limit: 128M
    searchd_log_file: "/var/log/searchd.log"

development:
    min_infix_len: 3
    bin_path: "/usr/local/bin"
    version: 2.0.5
    mem_limit: 128M
重建、启动和配置工作正常,我的production.conf文件包含以下内容:

index company_core
{
  source = company_core_0
  path = /var/www/html/ordering-main/releases/20110831095808/db/sphinx/production/company_core
  charset_type = utf-8
  min_infix_len = 1
  enable_star = 1
}
我的production.rb env文件中也有以下内容:

ThinkingSphinx.deltas_enabled = true 
ThinkingSphinx.updates_enabled = true
我的searchd.log文件只有以下内容:

[Wed Aug 31 09:40:04.437 2011] [ 5485] accepting connections
apache错误/访问日志中根本没有显示任何内容

--编辑---


不确定这是否是原因,但sphinx.yml中的版本值适用于sphinx的版本,而不是sphinx-因此,您可能需要运行
索引器来仔细检查该值(可能是0.9.9、1.10-beta或2.0.1-beta中的一个)

另外:在服务器上,在
脚本/控制台制作
中,您是否可以共享以下内容的完整输出(对返回的值不感兴趣,因此我强制它为空字符串-否则它只会造成妨碍):

`` delta不在乘客用户的生产服务器上工作,在创建索引并将其写入db/sphinx/production文件夹时,您必须向乘客用户授予写入权限

或者可以在nginx/conf/nginx.conf中设置两行

  passenger_user_switching off;   
  passenger_default_user root;
例如:

passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.0;
passenger_ruby /usr/local/bin/ruby;
passenger_user_switching off;
passenger_default_user root;

嗨,珍妮-你能为你的公司模型添加define_索引块吗?当然,我已经更新了我的问题。谢谢你的回复。我已经更改了版本,稍后将重建。然而,运行该命令会抛出一个错误,我认为这是好的。在开发服务器路径中查找company_delta.tmp.spl的服务。如何更改?进一步调查后,我发现我当前文件夹中的/db/sphinx/只包含开发。不确定它为什么不在生产模式下创建文件夹..您如何运行TS rake任务?嗨,帕特。作为ubuntu用户(拥有web)。虽然min_Inflix还没有开始工作,但情况看起来好多了。我已经在我的开发服务器上创建了文件夹产品,但由于某种原因它没有上传。我在里面放了一个空白文件,现在它发送了…所以Delta在工作,而中缀不工作?您用来测试后者的查询是什么?我建议不要使用root作为默认用户-从安全角度看,这根本不是一个明智的举动。谢谢pat,但在写入我的db/sphinx/production文件夹时,它显示了nobody和nogroup。因此,没有任何索引正在更新。我将如何解决这个问题。默认情况下,Passenger将使用您的应用程序文件的所有者,并且该用户也应该调用TS rake任务。那么也许可以修复Rails应用程序文件的所有权?
  passenger_user_switching off;   
  passenger_default_user root;
passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.0;
passenger_ruby /usr/local/bin/ruby;
passenger_user_switching off;
passenger_default_user root;