我們是有點大的提升的中間:的Rails 3 ThinkingSphinx多租戶
Rails
2.3至3.2Rails
ThinkingSphinx
1.4.1至3.0.6ThinkingSphinx
Sphinx
0.9。 9至Sphinx
2.0.8
而現在我們的ThinkingSphinx
配置已損壞。我們有多租戶設置,所以關於我們如何連接有點複雜。我們的方法set_sphinx_connection
每次啓動搜索操作時都會調用。下面是我們如何來做到這一點:
def set_sphinx_connection
Thread.current[:thinking_sphinx_environment] = "tenant_#{Tenant::active.id}"
ThinkingSphinx::Configuration.instance.reset
end
下面是我們如何努力,現在做到這一點:
def set_sphinx_connection
framework = ThinkingSphinx::Frameworks::Plain.new
framework.environment = "tenant_#{Tenant::active.id}"
ThinkingSphinx::Configuration.instance.framework = framework
end
每個租戶都有自己的獅身人面像的配置文件,每個在其自身的搜索港口。從我們thinking_sphinx.yml摘錄低於:
tenant_1:
mysql41: 9312
enable_star: true
min_infix_len: 1
tenant_2:
mysql41: 9313
enable_star: true
min_infix_len: 1
tenant_3:
mysql41: 9314
enable_star: true
min_infix_len: 1
如果你永遠只能在一個租戶進行搜索,它工作得很好。但是,當你搜索一個又接連兩個錯誤之一正在發生:
- 陳舊ID錯誤在第二租戶從第一租戶在數
- 搜索返回到第二租戶
有沒有人有辦法讓這個工作?帕特如果你在外面,你可以幫忙嗎?
更新:我們認爲它與Passenger
有關。當第一個實例啓動時,它始終對該租戶有效。但是,從那時起,該乘客實例不能搜索任何其他租戶。
似乎對我很好:) – pat