2010-07-14 53 views
2

我的問題是非常相似的this question
區別,我需要最少的RAM密集方式來收集有關不同值的信息。在這種情況下,我不在乎實際的數量,我只是想知道該領域的可能值。
我經常用完堆空間(3000萬文件)並且必須有某種方式/參數才能以內存節省的方式做到這一點不同的SOLR字段值沒有計數

+0

你發揮與facet.method參數? – 2010-07-14 12:38:45

+0

nope,但由於「fc」是solr 1.4中的新默認值,所以我不知道應該放入什麼 – 2010-07-14 14:41:36

+0

另一個是「枚舉」,但「fc」應該使用較少的內存。請參閱http://wiki.apache.org/solr/SimpleFacetParameters#facet.method – 2010-07-14 16:22:08

回答

0

我不知道RAM的使用情況,但您可能想要請嘗試Field collapsing您會發現Solr here的修補程序。

+0

這似乎只與結果集相關。我不讓solr返回任何行。我只對方面領域感興趣 – 2010-07-16 09:03:04

1

如果不同值的數量很高,您可能需要進行方面分頁。使用facet.offset和facet.limit參數。

+0

什麼是「高」?頂部字段可能有100個可能值 – 2010-07-14 14:39:50

+0

默認值爲100,因此通常不會將其視爲「高」。但嘗試facet.limit = 10,看看它是如何發展。 – 2010-07-14 16:25:19

1

使用StatsComponenet檢索不同值的列表某一個領域: https://cwiki.apache.org/confluence/display/solr/The+Stats+Component

參數stats.calcdistinct

如果爲真,不同的值將被計算並返回爲「countDistinct」和「 distinctValues「。對於某些字段,這種計算可能會很昂貴,所以默認情況下它是錯誤的。如果只想爲特定字段返回不同的值,則還可以指定f..stats.calcdistinct,替換爲字段名稱,以將不同值計算限制爲必填字段。

爲了減少負載,儘可能少地檢索它並緩存結果,並在數據發生變化時再次檢索。

如果您的索引一般較慢,您可能需要查看緩存配置和/或給予SOLR更多RAM(如果您有辦法)。

最初回答這裏(由我):

https://stackoverflow.com/a/26714447/621690

+0

該選項在v3.x中不可用。對於v3.x有沒有答案? – 2015-11-05 09:22:02

+0

@ScottChu你的意思是Solr 1.3.x?這真的很古老,我已經用這個版本很長一段時間了。我認爲你可以使用術語組件來實現它,即使是1.3,因爲如果我沒有記錯的話,Luke(Solr Admin)也有這個信息。 – Risadinha 2015-11-05 11:36:47

+0

不!我的意思是Solr 3.x.我們有一箇舊的Solr 3.5產品。我試過你的答案,但它不起作用! – 2015-11-12 02:05:17