Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 斯芬克斯思考的奇怪结果_Ruby On Rails_Thinking Sphinx - Fatal编程技术网

Ruby on rails 斯芬克斯思考的奇怪结果

Ruby on rails 斯芬克斯思考的奇怪结果,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,我有一个“用户”MySQL表。用户名存储在单独的“名称”表中 索引文件如下所示: ThinkingSphinx::Index.define :user, :with => :active_record do indexes names.text, :as => :name end 大多数时候搜索都很好,但有些条目不在结果中。例如,搜索托马斯、杰斐逊或托马斯·杰斐逊时,不会返回托马斯·杰斐逊先生。他所有的总统同僚都得到了更好的待遇 我只是不知道会出什么问题 Rails:3.2

我有一个“用户”MySQL表。用户名存储在单独的“名称”表中

索引文件如下所示:

ThinkingSphinx::Index.define :user, :with => :active_record do

  indexes names.text, :as => :name

end
大多数时候搜索都很好,但有些条目不在结果中。例如,搜索托马斯、杰斐逊或托马斯·杰斐逊时,不会返回托马斯·杰斐逊先生。他所有的总统同僚都得到了更好的待遇

我只是不知道会出什么问题


Rails:3.2.18,ruby:1.9.3,ThinkingSphinx:3.1.1

您正在搜索以Thomas开头的全文

因此,要搜索给定的结果,您必须编写以下代码 thinking_sphinx.yml文件

最小中缀长度:1 启用星号:2

在搜索查询中写入:
使用者search@name“{params[:name]}”您将得到结果。

启用星号选项是关于通配符的,而通配符不是问题的焦点。min_infix_len是关于子字符串的,正如问题所指出的,即使是完全匹配的字符串也不会产生任何结果。你确定你的版本正确吗?TS v1.4是针对Rails 2.3的,您的索引定义样式仅在TS v3中引入……也就是说,您是否在向用户添加这些新名称后重新索引数据?TS版本错误,已编辑。是的,我重新编制了数据索引。从提供的信息来看,一切都是正确的。该名称是否连接到用户?您正在运行User.search'Thomas J Jefferson'还是更复杂的东西?对搜索方法的调用是:User.search'Thomas J Jefferson',match_mode::extended,per_page:1000,retry_stale:true,填充:True,并且所讨论的名称已附加到用户?不相关,但是:match_模式不是必需的-TS v3使用SphinxQL协议,它只使用扩展的匹配样式-因此,您仍然可以获得所需的匹配,并且忽略该设置。