1

solrnosql ストアとして使用することを検討しています。私はウェブサイトを作成しており、データの 90% を検索可能にする必要があるため、データのリレーション モデルを使用して solr を同期させるのではなく、単に情報を solr に保存することは理にかなっています。

ここに私の問題があります。他のオブジェクトのリストが添付されているようにマップしたいオブジェクトがある場合

class Foo
{
    int FooId { get; set; }
    IList<Bar> Bars { get; set; }
    IList<Baz> Bazs { get; set; }
}

class Bar
{
    int BarId { get; set; }
    int FooId { get; set; }
}

class Baz
{
    int BazId { get; set; }
    int FooId { get; set; }    
}

これをsolrおよびsolrnetから処理する最良の方法は何ですか?

Solr の経験は比較的少ないのですが、Foo、Bar、および Baz を別々のコアに分けるように言われました。これは正しいアプローチでしょうか?

また、3 つのコアに対してグループ クエリを実行して、foo と bars と bazs を含む 1 つの大きなドキュメントを作成することもできると言われました。

私は使用していますsolr 5.0.0


複雑なオブジェクトマッピングを探しているもので機能するように見える名前空間で見つけましSolrDocumentSerializerSolrNet.Impl

4

1 に答える 1

1

必要なものはあなたの例に限定されているとは思いませんが、それだけなら...質問に答えるには、コア Foo を作成し、それに 3 つの fietds を配置するだけです.1 つは id で、もう 2 つは 2 ですBarid と Bazid を含む複数値フィールド

[SolrUniqueKey("fooId")]
public string FooId{ get; set; }

[SolrField("barId ")]
public ICollection<string> BarId { get; set; }

[SolrField("bazId ")] // cat is a multiValued field
public ICollection<string> BazId { get; set; }

これはあなたの例で十分です。しかし、Solr でこれを行うのは簡単ではない、より複雑なことは何でも、あまり経験がない場合は試してみることをお勧めしません。

于 2013-07-26T09:00:52.343 に答える