2014年6月8日 星期日

[野人獻曝] 讓 solr 將查出的資料作亂數排序

第一步:打開你的索引核心目錄中的 schema.xml
分別找到 fields 和 types 兩個區塊,並在區塊內加上以下內容:
<fields>
......
<dynamicField name="random*" stored="false" indexed="true" type="rand" />
</fields>
<types>
......
<fieldType name="rand" class="solr.RandomSortField"  indexed="true" />
</types>

注意:紅字的地方名稱務必要一樣,不然索引應該會失敗。

第二步:重新啟動 solr ,完工!

如果你有設定 Replication 的話,
理論上應該會將這份 schema.xml 同步到 slave 機上。

接著你可以在 solr 的查詢介面中試著用 sort = random* [desc | asc] 試試看,
應該會看到不同查詢排序結果。
(注:*可以是任何字元,但是儘量不要用同一組字元,因為會得到同樣的結果,就沒有 random 的意義了)

以上,打完收工!
張貼留言