2014-01-20 30 views
8

我們目前有一個沒有應用過濾器/構面/查詢的頁面設置。它是所有內容的列表(使用尋呼機)。過濾器查詢類似於*:*(任何字段中的任何內容)。當使用過濾器查詢*時,Solr如何默認進行排序:*?

我無法弄清楚內容是如何被排序的。它說這是「相關性」,但是當你選擇一切時,這意味着什麼?

我做了一些快速測試。它似乎沒有按內容修改日期或輸入索引進行排序。

回答

8

查詢*:*也被稱爲a MatchAllDocsQuery。根據SO問題How are results ordered in solr in a "match all docs" query它將以與它們存儲在索引中相同的順序返回文檔。

請注意,如果您更新現有文檔,它會被刪除並重新創建。因此,它會在此後的搜索結束時出現。

有(至少)在Lucene的Nabble兩個線程我知道的是有趣的關於這一主題

+0

太棒了,不知道那種類型的查詢有一個名字。 – donutdan4114

2

如果未指定排序參數,則默認搜索應爲score desc將只選擇一切。

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

+0

如果我沒有應用任何方面或其他方面,那麼所有文檔的分數是不是相同?如果10個文檔具有相同的分數,Solr如何對這些文檔進行排序?這個文檔不是很清楚:http://wiki.apache.org/solr/SolrRelevancyFAQ#How_are_documents_scored – donutdan4114

+0

而這個文檔有點高於我的頭:https://lucene.apache.org/core/4_0_0/core/ org/apache/lucene/search/similarities/TFIDFSimilarity.html – donutdan4114

+2

@ donutdan4114如果任何文檔以完全相同的分數返回,它們將按內部Lucene文檔ID進行排序,該文檔在文檔更新/插入時逐漸增大。在這種情況下,那些分數相同的文檔將按照它們在索引中出現的順序進行排序。 – jro