0

ThinkingSphinx 是否有任何简单的方法来索引一些元数据关键字以及每个被索引的对象。

在下面的示例中,我在此处为包含来自不同位置的照片的照片表编制索引。

ThinkingSphinx::Index.define :photo, :with => :active_record do
  indexes title, description, continent, country, province, area
end

现在,如果我搜索一个位置,例如“不丹”,sphinx 会给我所有与不丹相关的照片和其他项目。但是,如果我搜索“不丹照片”,则 sphinx 不会返回任何内容,因为关键字“照片”没有与照片表中的项目一起编入索引。

我解决它的一种方法是在我的照片表中添加一个“searchmeta”列,并将描述性关键字放在该列条目中。但这非常昂贵,因为相同的信息将被复制到我的照片表的所有行中。我想知道是否有任何更简单的方法可以解决这个问题?

4

1 回答 1

1

正如 Barry 在评论中所建议的那样,您可以从查询中的元数据关键字中删除该信息 - 这可能是最好的,但另一种选择是您可以将其作为字符串直接添加到索引定义中(跳过将其包含在数据库):

ThinkingSphinx::Index.define :photo, :with => :active_record do
  indexes title, description, continent, country, province, area
  indexes "'photo photos'", :as => :metadata
end
于 2013-09-16T01:55:54.357 回答