开发者

Thinking Sphinx min_inflex_len and delta not working on production server

We have an issue with TS min_inflex_len and delta indexes on our production servers

I have everything working in development mode on OSX but when we deploy via capistrano to our Ubuntu server running passenger / apache, both delta indexing seems to stop as well as min_inflex_len

We're deploying as ubuntu us开发者_高级运维er which also runs apache. We had an issue yesterday with production folder not being created but we manually created and I can see a list of the delta files in there now.

I've followed the docs through..

I can see the delta flag set to true on record creation but when searching it doesn't find the record. Once we rebuild index (as ubuntu user) I can find record, but only with full string.

My sphinx.conf file is as follows:

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

Rebuild, start and conf work fine and my production.conf file contains this:

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
}

I also have this in my production.rb env file:

ThinkingSphinx.deltas_enabled = true 
ThinkingSphinx.updates_enabled = true

My searchd.log file only has this in:

[Wed Aug 31 09:40:04.437 2011] [ 5485] accepting connections

Nothing at all appears in apache error / access log

-- EDIT ---

 define_index do
        indexes :name
        has created_at, updated_at
        set_property :delta => true
    end


Not sure if it's the cause, but the version values in your sphinx.yml are for the version of Sphinx, not Thinking Sphinx - so you may want to run indexer to double-check what that value should be (likely one of 0.9.9, 1.10-beta or 2.0.1-beta).

Also: on the server, in script/console production, can you share the full output of the following (not interested in the value returned, hence why I'm forcing it to be an empty string - it'll just get in the way otherwise):

Company.define_indexes && Company.index_delta; ''


`` delta not working on production server for passenger user, you have to give the write permission to your passenger user when creating index and write it to db/sphinx/production folder.

Or you can set two line in your nginx/conf/nginx.conf

  passenger_user_switching off;   
  passenger_default_user root;

Example:

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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜