这给出了我期待的结果:
result = Content.search("minerva", :conditions => {:publication_code => "12345678"})
result.first.element_type #=> "chapter"
result.first.excerpts.text #=> "outdated practice, The Owl of <span class=\"match\">Minerva</span> talks about the “unrealistic ‘Cartesian … major premise The Owl of <span class=\"match\">Minerva</span> details the innumerable combinations possible … concepts?” See The Owl of <span class=\"match\">Minerva</span>, p. 319. “Of course, ideally"
但是:如果我包含文字中确实存在的搜索条件,例如单词&#34; section&#34; (这是一个内容元素类型)这是我得到的:
result = Content.search("minerva", :conditions => {:publication_code => "12345678", :element_type => "section"})
result.first.element_type #=> "section"
result.first.excerpts.text #=> "November 2001. The Owl of <span class=\"match\">Minerva</span>, p. 107. provides as follows: … foreign diplomatic or consular property, <span class=\"match\">section</span> 177 would place the United … source of leverage. In addition, <span class=\"match\">section</span> 177 could seriously affect our"
&#34;从字面上看,部分&#34;现在也被视为匹配。我没有得到这种回应的原因。
更新以更多地说明问题:
此处有一个查询,可以在搜索条件中使用“I&#;;&#34;”这一术语附近找到一个搜索字词(&#34;认证&#34;),以限制我的搜索属于部分的element_type
。
result = Content.search("certification", :conditions => {:publication_code => "12345678", :element_type => "section"})
返回的文本是这个(缩写为匹配以下摘录,以及我的粗体文本):
result.first.text
[...]以及部分 10和部分 10 认证流程的运作。他注意到[...]
部分 10(1)(b)引入的认证程序的对象不是[...][...]国内法院。 部分 10提供的认证程序同样[...]
致电result.first.excerpts.text
给我以下内容。正如您所看到的,在文本中的任何地方都可以使用术语“分类”和“分类”。或者&#39;部分&#39;被发现,它被设置为匹配。
" … and operation of <span class=\"match\">section</span> 10 and the <span class=\"match\">section</span> 10 <span class=\"match\">certification</span> process. He noted: … object of the <span class=\"match\">certification</span> procedure introduced by <span class=\"match\">section</span> 10(1)(b) was not to … domestic court. The <span class=\"match\">certification</span> procedure provided for by <span class=\"match\">section</span> 10 is similarly … "
答案 0 :(得分:1)
摘录窗格在生成输出时使用所有查询字词 - 包括提供的条件(因为它们最终成为Sphinx查询的一部分 - 例如,从Sphinx的角度来看,您的第二个示例是"minerva @publication_code 12345678 @element_type section"
)。
另一种方法是让你自己的excerpter只有你想要的查询:
excerpter = ThinkingSphinx::Excerpter.new 'content_core', 'minerva', {}
excerpter.excerpt! results.first.text
构建excerpter时的第一个参数是索引名称,第二个是要匹配的搜索查询,第三个是options。
答案 1 :(得分:0)
我认为这只是一个巧合。
尝试使用文本中没有section
的数据集来查看是否也会发生这种情况。