我应该怎么做才能加速Sphinx索引(使用MySQL)? 我应该使用其他数据库,noSQL数据库吗?
另请注意,delta索引很快,只有完整的reindeinx进程很慢。 请详细说明。 THX!
更新: 我正在重新索引超过100.000项,我的思维 - 狮身人面像索引定义看起来像这样
define_index do
indexes [text, user(:nickname), user(:full_name)]
has rewrites(:id), :as => :rewrite_id
has rewrites(:user_id), :as => :rewrite_user_id
has [rewrites(:user_id), user_id], :as => :user_id_or_rewrites_user_id
has comments(:user_id), :as => :comments_user_id
has simbols(:id), :as => :simbol_ids
has followings(:follower_id), :as => :follower_id
has follows(:followable_id), :as => :followable_id
has created_at, :sortable => true
has rewrites_count, :sortable => true
has relevance, :sortable => true
has user_id
set_property :delta => :datetime
end
答案 0 :(得分:1)
构建完整索引很慢。有多慢?
建立增量指数很快。
根据我的经验,这听起来很正常。
noSQL数据库(最后我听说@Rails 2.3.5)很难与Rails集成。没有SQL速度取决于您的数据集和关系。
没有更多信息,这听起来很正常。
==编辑==
确保
上有SQL索引 created_at
rewrites_count
relevance
除了你的主键之外自然。
答案 1 :(得分:1)
使用thinking_sphinx时,请始终查看它在真正的sphinx配置文件中生成的SQL。针对将运行的所有查询运行查询分析器。我发现你也可以操作相当多的查询。
对于一对多的关系,您可能需要添加以下内容:
:source => :ranged_query
这将导致sphinx使用单独的查询来收集子项而不是外部联接。在许多情况下它会快得多。
答案 2 :(得分:0)
如何使用实时索引(调整适当的内存限制)