我需要使用Sphinx将我的应用程序连接到外部服务器。 Sphinx被许多应用程序使用,我不管理它。我需要在我的应用程序中设置什么才能使用Thinking Sphinx连接到该外部服务器?
我假设我没有运行rake ts:start因为我没有使用本地守护进程而且我没有进行任何索引。
我在配置目录中添加了文件thinking_sphinx.yml,其中包含address
和mysql41
的设置。当我尝试从控制台运行搜索时,我得到:
User.search('jon', indices: [ 'users' ] )
(Object doesn't support #inspect)
=>
我是否还需要Thinking Sphinx的更多设置才能在我的应用程序中使用?
修改
我让Sphinx管理员将索引名称更改为user_core
,因此我不需要指定索引。我跑的时候:
User.search('jon').first
我明白了:
NoMethodError: undefined method `constantize' for nil:NilClass
任何帮助将不胜感激
答案 0 :(得分:0)
这个Sphinx服务器是否与您当地的Thinking Sphinx配置分开设置?思考Sphinx期望某些属性存在于Sphinx索引中(并且,正如您所发现的,某些命名约定)。它还需要使用与ActiveRecord模型相同的数据源。
简而言之 - 如果思科Sphinx没有生成Sphinx配置,我会非常犹豫将它和Thinking Sphinx混合在一起。
但是否则:NoMethodError的完整堆栈跟踪将非常有用。