0

NEST (Elastic Search .NET クライアント) を使用して以下の結果を取得する必要があります。

"detailVal": {
    "name": "detailVal",
    "type": "multi_field",
    "fields": {
        "detailVal": {
            "type": "string"
        },
        "untouched": {               // <== FOCUS 2
            "type": "string",
            "index": "not_analyzed",
            "omit_norms": true,
            "include_in_all": false,
            "index_options": "docs"  // <== FOCUS 1
        }
    }
}

私はこれまでやってきました

    [ElasticProperty(OmitNorms = true, Index = FieldIndexOption.not_analyzed, IncludeInAll = false, AddSortField = true)]
    public string DetailVal { get; set; }

私を得る

"detailVal": {
    "name": "detailVal",
    "type": "multi_field",
    "fields": {
        "detailVal": {
            "type": "string",
            "index": "not_analyzed",
            "omit_norms": true,
            "include_in_all": false
        },
        "sort": {                    // <== FOCUS 2
            "type": "string",
            "index": "not_analyzed"
        }
    }
}

だから、どのように

  1. add "index_options": "docs" (IndexOptions.docs を見つけましたが、属性として有効ではありません)
  2. 並べ替えそのままに変更
4

1 に答える 1

0

属性ベースのマッピングでは、これまでのところしか取得できません。名前を変更し、単純なプロパティを設定するだけで十分です。

推奨されるアプローチは、client.MapFluent()

https://github.com/Mpdreamz/NEST/blob/master/src/Nest.Tests.Unit/Core/Map/FluentMappingFullExampleTests.cs#L129を参照してください。

設定方法の例index_options

208 行目: https://github.com/Mpdreamz/NEST/blob/master/src/Nest.Tests.Unit/Core/Map/FluentMappingFullExampleTests.cs#L208

独自の multi_field マッピングを作成する方法を確認するには。

両方のアプローチを組み合わせることもできます。

client.MapFluent<MyType>(m=>m
     .MapFromAttributes()
     //Map what you can't with attributes here
);

client.Map()client.MapFromAttributes()ある時点で削除される可能性が高くなります。

于 2014-01-07T17:21:07.020 に答える