首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rails中使用thinking-sphinx创建一个搜索,仅搜索索引的某些属性

在rails中使用thinking-sphinx创建一个搜索,仅搜索索引的某些属性
EN

Stack Overflow用户
提问于 2016-06-06 16:14:54
回答 1查看 78关注 0票数 0

我在狮身人面像上有这样的索引:

代码语言:javascript
复制
ThinkingSphinx::Index.define :publication, :with => :active_record do
  indexes transcript.transcript_text, :as => :transcript
  indexes taggings.tag.name, :as => :tags
end

我想做一个搜索,忽略记录,只搜索标签。有什么办法来组织搜索来做到这一点吗?

我认为在这个索引上可能不可能,所以我为此创建了一个新的索引:

代码语言:javascript
复制
ThinkingSphinx::Index.define :publication, :name => 'tag_only', :with => :active_record do
  indexes taggings.tag.name, :as => :tags
end

但是,我没有找到任何关于如何在搜索中实际使用这样的命名索引的信息。我在哪里指定要在这样的查询中使用tag_only索引:

代码语言:javascript
复制
Publication.search(terms, :with => with_conditions, :ranker => :matchany)

任何洞察力都将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-07 00:25:18

据我所理解,定义中的每个indexes都是在基础的狮身人面像索引中创建一个field

默认情况下,对索引的搜索查询搜索所有字段。因此,在第一个示例中,对该索引的搜索将包括这两个字段。

根据定义,对第二个只有一个字段的索引的搜索只会搜索该字段。因此,不需要详细说明特定的领域。

..。要在特定索引中仅搜索一个字段(或其他子集),可以直接使用狮身人面像扩展语法。http://sphinxsearch.com/docs/current.html#extended-syntax

或者它可以使用条件http://freelancing-gods.com/thinking-sphinx/searching.html#conditions (必须映射到自动扩展查询:)

有点像

代码语言:javascript
复制
Publication.search :conditions => {:tags => terms}, :ranker => :matchany

其中:tags是您在定义中所称的字段(抱歉,不知道ruby语法是否准确。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37662209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档