1

使用indextankruby​​gem,如果我索引这样的帖子

indexes.document(post.id).add({:title=> post.title, :text=> post.body})

我的查询应该是什么样子,以便在title匹配之前返回body匹配。这样做:

indexes.search("title:#{query} OR text:#{query}", :snippet=> :text)

返回从最新到最旧排序的所有匹配项。

谢谢你。

4

1 回答 1

2

您的评分函数 0 定义为什么?默认情况下,它是“-age”,这意味着最近的在前。对于文本相关性,您可以将评分函数替换为“rel”,即文本相关性。

我不知道有什么方法可以确保每个标题匹配都高于其他匹配,但是您可以通过在查询的标题部分添加“^10”来大大“提升”标题。这是一个例子:

title:potter^10 text:whatever

这意味着标题匹配比“文本”字段的匹配高 10 倍。如有必要,您可以提高数字“10”。

于 2012-02-10T04:22:29.533 回答