2017-02-13 7 views
2

フィールドタイプが混乱しています。 stringstringsおよびintintsおよび他のデータ型のようなもの。フィールドタイプ文字列と文字列

次の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 
} 

答えて

3

あなたが実際にFIELDTYPE定義を見ればあなたは、あなたがSolrのデフォルトのスキーマを使用するときに作られていますデフォルトのフィールドタイプの話をしているかどうかは、この意見:編集

<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" /> 
<fieldType name="strings" class="solr.StrField" sortMissingLast="true" multiValued="true" docValues="true" /> 

を:2番目の例は、stringの代わりにstringsとなるはずです

実際には同じ種類(ソルのデフォルト文字列クラスsolr.StrField)なので、同じタイプですのデータ。唯一の違いは '文字列'が複数の値を持つことです。これは、1つのフィールドに複数の離散値を格納できることを意味します。

例では、ハッシュタグデータは個々のハッシュタグ値の配列にすぎないので、複数の個別の文字列を1つのフィールドに格納する必要があるため、multiValuedのように 'strings'が選択肢になります。

+2

「フィールド名」を定義するときに混乱が生じました。これにより、属性 'multiValued'を宣言できます。 'さて、彼らは同じであることが分かります。ちょっと混乱し、 'field name'中の' multiValued'を冗長にします。 'multiValued'は' field type'によって確定されるので、 –

+0

はい、私は2番目に「s」を見逃してしまいました。固定 – Jayce444

+0

ええ、あなたはフィールドでも同様に 'マルチ値'を宣言することができます。だからあなたのハッシュタグデータ構造を与えれば、 'multiValued =" true "'をフィールド定義に置くことができます – Jayce444

関連する問題