2012-11-06 45 views
0

如果我需要在單個字段名稱下對一組值進行索引,那麼我應該使用多值字段還是應該使用單值字段,並讓此字段中的所有值由空格分隔?Solr - 多值字符串字段和具有多值的單值字符串之間有什麼區別?

字段類型是字符串。

謝謝。

+0

multiValued字段,這就像數據庫設計,將CSV值保存到列中是一個糟糕的設計 – ajreal

+1

請參考前面的問題:http:// stackoverf low.com/questions/5800762/what-is-the-use-of-multivalued-field-type-in​​-solr –

回答

3

您可以將多值字段視爲數組或列表......對於您的問題,它取決於您在該字段上執行的操作。

如果你會不斷添加一些東西到該領域頻繁,你應該去多值字段。您不必每次添加新項目時設置單個字符串字段,只需將其添加到多值字段即可。此外,如果你是多值領域,你不需要知道整個列表,而更新它。但對於單個領域,您需要知道其中的舊值。

使其更清晰;

可以說,你需要指數「AAA BBB CCC」 ..如果你把它們放到單場它會像

<str>aaa bbb ccc</str> 

,如果你需要加DDD到這個領域,那麼你需要添加aaa bbb ccc ddd到字段實際上(我猜你不想每次更新它時都檢查字段的舊值)

但是如果你使用多值字段,對於aaa bbb ccc它將會像

<field><str>aaa</str><str>bbb</str><str>ccc</str></field> 

這種情況下,當你需要添加DDD,你不必知道舊值,只需添加DDD和你做......

,但是否會有從現場清除過,你應該因爲solr不支持從多值字段中刪除(儘管你可以通過簡化源代碼輕鬆完成)

我希望它可以幫助...因爲你提供的信息有點兒太少要有明確的答案

相關問題