【问题标题】:IndexTank - How to prioritize result of a queryIndexTank - 如何确定查询结果的优先级
【发布时间】:2012-02-09 11:00:16
【问题描述】:

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: ruby-on-rails-3 full-text-indexing indextank


    【解决方案1】:

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

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

    title:potter^10 text:whatever

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

    【讨论】:

    • 嗨,克里斯,我能找到 IndexTank 查询语法的完整文档吗?
    • 嗨 Yaroslav,这里是 IndexTank 查询语法:searchify.com/documentation/query-syntax
    • 谢谢!我在为 indexden.com 开发 IndexTank 的 API 实现时没有提到这个文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    相关资源
    最近更新 更多