【问题标题】:How does Solr sort by default when using filter query *:*?Solr 在使用过滤查询 *:* 时默认如何排序?
【发布时间】:2014-01-20 14:41:45
【问题描述】:

我们目前有一个没有应用过滤器/构面/查询的页面设置。它是所有内容的列表(使用寻呼机)。过滤查询类似于*:*(来自任何字段的任何内容)。

我无法弄清楚内容是如何排序的。它说是“相关性”,但是当您选择所有内容时,这意味着什么?

我做了一些快速测试。它似乎没有按内容修改或输入索引的日期排序。

【问题讨论】:

    标签: apache solr


    【解决方案1】:

    查询*:* 也称为a MatchAllDocsQuery。根据 SO 问题How are results ordered in solr in a "match all docs" query,它将以与存储在索引中的顺序相同的顺序返回文档。

    请注意,如果您更新现有文档,它会被删除并重新创建。因此,它会出现在之后此类搜索的末尾。

    据我所知,Lucene 的 Nabble 中有(至少)两个线程对这个主题很有趣

    【讨论】:

    • 太棒了,不知道这种类型的查询有名字。
    【解决方案2】:

    如果未指定排序参数,则默认搜索应按score desc: 只会选择所有内容。

    参考:http://wiki.apache.org/solr/CommonQueryParameters#q

    【讨论】:

    • 如果我不应用任何方面或任何东西,那么所有文档的分数不会相同吗?如果 10 个文档得分相同,Solr 如何对这些文档进行排序?该文档不是很清楚:wiki.apache.org/solr/SolrRelevancyFAQ#How_are_documents_scored
    • @donutdan4114 如果任何文档以完全相同的分数返回,它们将按内部 Lucene 文档 ID 进行排序,随着文档的更新/插入而递增。在这种情况下,那些得分并列的文档将按照它们在索引中出现的顺序进行排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2022-08-24
    • 2012-04-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多