NEST 2.xでは、さまざまな方法でPOCOのプロパティを無視できます。のは、(この例では、StringAttribute
IgnoreViaAttribute
のプロパティ)派生ElasticsearchPropertyAttribute
タイプのIgnore
プロパティを1.Using
using Nest;
using Newtonsoft.Json;
[ElasticsearchType(Name = "company")]
public class Company
{
public string Name { get; set; }
[String(Ignore = true)]
public string IgnoreViaAttribute { get; set; }
public string IgnoreViaSettings { get;set; }
[JsonIgnore]
public string IgnoreViaSerializerSpecificAttribute { get; set; }
}
はPOCO
に無視されるべきであるプロパティに適用した例として、以下のPOCOを使用してみましょう
は.InferMappingFor<TDocument>(Func<ClrTypeMappingDescriptor<TDocument>, IClrTypeMapping<TDocument>> selector)
接続設定の
var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
.InferMappingFor<Company>(i => i
.Ignore(p => p.IgnoreViaSettings)
);
var client = new ElasticClient(settings);
2.Usingこれらの設定は、ConnectionSettings
のインスタンスごとにキャッシュされています。
3. IElasticsearchSerializer
によって理解され、シリアライザのCreatePropertyMapping()
の内部で検査されるPOCOプロパティに適用されるignore属性を使用します。デフォルトのJsonNetSerializer
の場合、これはJson.NET JsonIgnoreAttribute
です。この例では、これはIgnoreViaSerializerSpecificAttribute
プロパティに適用された属性によって示されています。
インデックスマッピングを設定する現在のコードを共有できますか?属性ベースのマッピングを使用していますか? – Rob
これはクローズドネットワークシステムなので、私はコードを投稿できません。 –
タイトルをもっと冗長にする方法はありますか? – theMayer