solr核心中的一个字段是数据类型字符串,但是它不能适应该字段的值的长度,所以我希望将其更改为其他一些可以容纳字符串的数据类型,
>不幸的是,text_general与字符串而非字符串相似,因此无济于事。 还有其他数据类型可以帮助您吗?
答案 0 :(得分:2)
一个字段是否是多值的(您要描述的是什么),在字段类型上配置了默认值,但是对于您所要使用的每个字段,该值都可以覆盖定义。因此,string
和strings
之间的区别只是后者以multiValued="true"
作为默认值,而string
有multiValued="false"
作为默认值。
在实际定义字段时,您可以覆盖此字段,以说明文档是否允许特定字段具有多值功能,而与字段类型定义的内容无关。
<field name="string_field" type="string" multiValued="true"/>
将与strings
字段类型相同,因为它明确允许该字段在该字段中具有多个值。
因此,在您的情况下,您可以使用text_general
-默认情况下可能不会将其设置为multiValued,但是可以在定义字段时进行配置。
<field name="your_field_name" type="text_general" multiValued="true" />
text_general
和string
之间的区别在于text_general
上已应用了分析链和令牌生成器,因此文本在内部被拆分为较小的令牌。
Lucene对每个令牌有32768个字符的硬限制,这是在将较大的值索引到string
字段中时遇到的限制。
如果您要将大Blob存储在Solr中,我可能会建议将它们放入Amazon S3或其他数据存储中,而不是将生成的ID存储在Solr中。这样,索引大小就可以保持较低,并且在合并段时可以减少开销。
答案 1 :(得分:0)
text_general是一个字符串数组。因此,如果您要查找类似于字符串数据类型的类型(例如数组),那么text_general应该可以。
text_general的另一个优点是它允许标记化。字符串没有。