2012-09-11 17 views
8

Solrインデックスに値の配列を格納するにはどうすればよいですか?私は特にschema.xmlファイルを公式化しようとしています。人は複数のバンドや他に属している可能性の概念を無視Solrに配列を格納する

Bands: 
    BandID 
    Name 
People: 
    PersonID 
    Name 
    Instrument 
BandsPeople: 
    BandID references Bands(BandID) 
    PersonID references People(PersonID) 

:私はそうのような3つのテーブルを持っているでしょうMySQLでは

ID: 351 
Name: Beatles 
Members: 
    1) Name: John 
     Instrument: Guitar 
    2) Name: Paul 
     Instrument: Guitar 
    3) Name: George 
     Instrument: Bass 
    4) Name: Ringo 
     Instrument: Drums 

は以下の可能性のSolr文書を考えてみましょう私の目標は、Solrに配列を格納する方法を学ぶことです。バンドは単なる例であり、おそらく良いバンドではありません!複数Member sのための

明白なアプローチは、複数値フィールドのようになります。

<field name="member" stored="true" type="string" multiValued="true" indexed="true"/> 

しかし、多値フィールド自体は、サブ値を持っている必要があること。スキーマの策定方法に関するドキュメントはありません。私はSolr 4を使用していることに注意してください。ありがとう。

答えて

1

Luceneは既に参加していますので、dbスキーマにいくつかの注意点があります。Grouping and Joining in Lucene/Solrを参照してください。 Solrは最終的にそれにもアクセスします。ongoing work

+0

ありがとうございますが、私の意図は、Solrに配列を格納する方法を学ぶことであり、例として与えられたデータベースを近似する方法ではありません。しかし、Luceneに関する情報はとにかく+1です。ありがとう。 – dotancohen

8

いくつかの回答がありますが、悲しいことにそれらのどれもmultivaluedを使用していません。

  • 活用Luceneのネストされた文書(MAL-パフォーマンスの可能性)
  • は重く、各オプションごとに文書で文書を非正規化します。その後、Luceneのグループ化機能を使用します。 (これは「SOLR/Luceneの道」です。)
  • は以下のブログ@オフセットアドバイススパンクエリ用語ベクトルフォロー: http://blog.griddynamics.com/2011/06/solr-experience-search-parent-child.html http://blog.griddynamics.com/2011/07/solr-experienceを-search-parent-child.html http://blog.griddynamics.com/2011/10/solr-experience-search-parent-child.html
  • インデックスファセット名を作成します。
  • インデックス付きファセット名、あなたのデータ(1つの文書)については

は次のようになります(数百より短い)

id="351" band="Beatles" 
    member_0="John" instrument_0="Guitar" 
    member_1="Paul" instrument_1="Guitar" 
    ... 
比較的短いリストを

、後者は、ドキュメントのサイズと複雑さが最も簡単ですしかし、問題をクライアントのラップに強制的に捜している。

+0

ありがとう、ガブリエル。ダイナミックフィールドのアプローチは良いアプローチであるとは確信していませんが、他にも多くのアプローチがないことに同意します。私はこれで周り遊ぶよ、ありがとう! – dotancohen

+0

私は、私たちが与えられた*いいえ* "良い"アプローチの意見です。あなたの環境に最も適合したものを選んでください。 (またはしないでください) – inanutshellus

+0

右、これは明らかにLucene(またはSolr)が設計されたユースケースではありませんでした。編集されたリンクのブログは素晴らしく、ありがとう! – dotancohen