我在可用的字段类型之间存在一些混淆。 string
vs strings
和int
vs ints
以及其他数据类型。
以下4有什么区别?
<field name="string_multi" type="string" multiValued="true" indexed="true" stored="true"/>
<field name="string_single" type="string" indexed="true" stored="true"/>
<field name="strings_multi" type="strings" multiValued="true" indexed="true" stored="true"/>
<field name="strings_single" type="strings" indexed="true" stored="true"/>
鉴于我有文档,我应该为名为hashtags
的字段声明什么?
String multivalued
或strings multivalue
或strings without multivalue
,?
{
"polarity":0.0,
"text":"RT @socialistudents: Vlad - we go to NUS conference not just as individuals but as members of Socialist Students #SocStu17",
"created_at":"Sun Feb 12 19:28:34 +0000 2017",
"hashtags":[
"hashtag1",
"hashtag2"
],
"subjectivity":0.0,
"retweet_recount":4,
"id":830861171582439424,
"favorite_count":0
}
答案 0 :(得分:3)
如果您正在谈论使用Solr的默认架构时所做的默认字段类型,那么如果您实际查看fieldType定义,则会说:
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />
<fieldType name="strings" class="solr.StrField" sortMissingLast="true" multiValued="true" docValues="true" />
已修改:第二个示例应为strings
而不是string
因此它们实际上具有相同的类(solr的默认字符串类solr.StrField
),因此它们是相同类型的数据。唯一的区别是&#39;字符串&#39;是多值的,这意味着您可以在一个字段中存储多个离散值。
在您的示例中,您的主题标签数据似乎只是一个单独的标签值的数组,因此,由于您希望在一个字段中存储多个离散字符串,因此&#39;字符串&#39;将是多值的选择。