使用indextank
rubygem,如果我将这样的帖子编入索引
indexes.document(post.id).add({:title=> post.title, :text=> post.body})
我的查询应该是什么样的,以便在title
匹配之前返回body
匹配。这样做:
indexes.search("title:#{query} OR text:#{query}", :snippet=> :text)
返回从最新到最旧排序的所有匹配。
谢谢。
答案 0 :(得分:2)
你的评分函数0定义为什么?默认情况下,它是“-age”,这意味着最近的第一个。对于文本相关性,您可以使用“rel”替换评分函数,这意味着文本相关性。
我不知道如何确保每个标题匹配都保证高于其他标题,但是您可以通过在查询的标题部分添加“^ 10”来大大“提升”标题。这是一个例子:
title:potter^10 text:whatever
这意味着标题匹配比“文本”字段的匹配高10倍。如有必要,你可以将数字提高“10”。