2017-08-23 30 views
0

是否可以動態檢索存在於一組Solr文檔中的所有字段並仍保持合理的性能?這裏的最終目標是爲用戶動態填充數字字段列表,以便對其當前查詢進行排序。動態檢索存在於Solr文檔中的所有字段

在一個完美的世界中,我希望能夠讓這個列表包含用戶查詢返回的文檔中存在的所有數字字段。

但是,如果這是不可能實現的,我將通過luke處理程序用數字字段填充列表。不幸的是,似乎luke處理程序爲整個集合返回字段,但不能僅限於當前查詢。

我是Solr的新手,所以任何幫助/討論將不勝感激!

回答

0

這是我如何解決我的問題:

  1. 新的字段添加到架構:SORT_DOC_FIELDSNO_SORT_DOC_FIELDS
  2. 使用ScriptUpdateProcessor寫了一些JavaScript,它確定是否可以基於幾個條件(例如,不是多值,而不是tdatestring)對字段進行排序。如果可以對它進行排序,我將它添加到該文檔的SORT_DOC_FIELDS字段中;如果沒有,我將它添加到NO_SORT_DOC_FIELDS字段。
  3. 無論何時我想檢索查詢中存在的字段,我都會將&facet=true&facet.field=SORT_DOC_FIELDS&facet.field=NO_SORT_DOC_FIELDS&facet.limit=-1添加到查詢字符串中。

表現還行。我有一個3000萬個文件的索引,並且查詢和獲得響應,往返時間大約需要2s。

相關問題