Sphinx / Thinking Sphinx:过滤由OR运算符连接的短语

时间:2011-04-27 06:50:17

标签: ruby-on-rails sphinx thinking-sphinx

我正在研究基于Thinking Sphinx的搜索/过滤器表单。在某些Sphinx字段中查询由OR运算符连接的某些短语时,我遇到了一些困难。

一点背景:我正在索引一个名为“关键字”的字段, 其中包含以逗号分隔的关键字,其中一些是短语, 而其他人则是单一条款。我想过滤包含的项目 keyword A OR keyword B OR keyword C.

我的搜索产生了错误的结果,因为短语似乎没有得到 考虑到:

Media::Set.search "Architecture", :conditions => {:keywords =>
"\"Computer Aided Design\"|Index-Browser|\"Shape Grammar\"" }

我尝试将每个短语括在单/双中 报价有/无逃避我能想到的。

我也尝试使用Sphinx扩展查询语法,例如 这样:

Media::Set.search 'Architecture @keywords ("Computer Aided Design" |
Index-Browser | "Shape Grammar")', :match_mode => :extended

同样,我已尝试以不同方式调整语法。

关键字逐一产生以下结果:

  • 计算机辅助设计:1场比赛
  • 索引浏览器:1匹配
  • Shape Grammar:3场比赛

我希望通过OR加入搜索三个关键字 运算符产生5场比赛,但我只得到一场比赛 “索引浏览器”,恰好是唯一的单个术语(无空格)。

我做错了什么?或者我误解了OR运算符是怎么回事 应该工作吗?

提前感谢任何指示,

~Andrea

0 个答案:

没有答案