C#でElasticsearchを操作しています。
インストールしているElasticsearchのVersionは6.2.3
C#のElasticsearch.NetのVersionは6.8.6
SourceFilterDescriptorを指定しなければ想定通りのデータが取得できますが、Interfaceで定義しているFieldをSourceFilterDescriptorで指定すると以下Errorが出て取得できません。
Could not create an instance of type Test.Data.ITestInterface. Type is an interface or abstract class and cannot be instantiated.
Interfaceで定義されているFieldをSourceFilterDescriptorで指定する際には何か指定が必要なのでしょうか。
Interface定義部
[JsonObject(ItemTypeNameHandling = TypeNameHandling.Auto)]
public interface ITestInterface
クラスの対象メンバ定義部
[Nested(Name = "test_data")]
[JsonProperty("test_data", ItemTypeNameHandling = TypeNameHandling.Auto)]
public ITestInterface A { get; set; }
処理部
SourceFilterDescriptor<T> filter.Includes(fi => fi
.Field(f => f.A)
);
var response
= elasticClient
.Search<T>(
s => s.Index(index)
.From(0)
.Size(maxSearchSize)
.Scroll(scrollTime)
.Source(sr => filter)
.Query(q => query));