2

エラーが発生しています:-値 'System.Collections.ArrayList' をドキュメント タイプ IKnowWhoKnowsSolrNet のプロパティ 'Specialisation' に変換できませんでした

マイコード

//Initialise the solrNet Client.
        var solr = ServiceLocator.Current.GetInstance<ISolrOperations<IKnowWhoKnowsSolrNet>>();

        //Get the data from the ID.
        var results = solr.Query(new SolrQueryByField("id", userName));//Error Place.

        //Check the name is empty or not.
        if (results.Count != 0)
        {
            //assign the areaSpecialisation value.
            areaSpecialisation = results[0].Specialisation;
        }

ここでエラーが発生しますvar results = solr.Query(new SolrQueryByField("id", userName));

userName = bhagirathiで確認すると正常に動作しますが、ユーザー名をuserName = 123|bhagirathi|bhagi@abc.comに変更しました

その与えるエラー。

[編集]

地域のプロパティ

[SolrUniqueKey("id")]
public string UserName { get; set; }

[SolrField("features")]
public string Specialisation { get; set; }

#endregion

#region Constractor

public IKnowWhoKnowsSolrNet()
{
    //
    // TODO: Add constructor logic here
    //
}

/// <summary>
/// Set the class property's value
/// </summary>
/// <param name="userDetails"></param>
/// <param name="areaSpecialisation"></param>
public IKnowWhoKnowsSolrNet(string userName, string areaSpecialisation)
{
    UserName = userName;
    Specialisation = areaSpecialisation;
}

#endregion

Id は solr の文字列です。

[/編集]

検索クエリを変更するだけでこのエラーが発生する理由を教えてください。

前もって感謝します。

4

1 に答える 1

2

あなたfeaturesのsolr schema.xml multiValuedにありますか? その場合Specialisationは、IKnowWhoKnowsSolrNet多値も必要です。

[SolrField("features")]
public ICollection<string> Specialisation { get; set; }
于 2013-01-08T21:39:05.493 に答える