【发布时间】:2012-11-07 15:08:31
【问题描述】:
如果我需要在单个字段名称下索引一组值,我应该使用多值字段还是应该使用单值字段并将该字段中的所有值用空格分隔?
字段类型为字符串。
谢谢。
【问题讨论】:
-
multiValued 字段,这就像数据库设计,将 CSV 值保存到列中是不好的设计
标签: solr
如果我需要在单个字段名称下索引一组值,我应该使用多值字段还是应该使用单值字段并将该字段中的所有值用空格分隔?
字段类型为字符串。
谢谢。
【问题讨论】:
标签: solr
您可以将多值字段视为数组或列表...对于您的问题,这取决于您将在该字段上运行哪种操作。
如果您要经常向该字段添加一些内容,则应该使用多值字段。无需在每次添加新项目时设置单个字符串字段,您只需将其添加到多值字段即可。此外,如果您对字段进行多值处理,则在更新它时不需要知道整个列表。但是对于单个字段,您需要知道其中的旧值..
为了更清楚;
假设您需要索引“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 不支持从多值字段中删除(尽管您可以通过破解源代码轻松完成)
希望对您有所帮助...因为您提供的信息太少,无法给出明确的答案
【讨论】: