2

ドキュメント ID が個人 ID と同じになるように個人 ID をマッピングできることは知っていますが、逆にすることはできますか?

ドキュメント ID 値をマッピングのプロパティにマップする方法は?

回答は、できれば C# NEST ライブラリを使用できますが、必須ではありません。ありがとうございます。

4

2 に答える 2

2

ES にインデックス付けされたソースを変更できる機能については知りません。

(非推奨)transform機能は、インデックス作成時に新しい任意のフィールドを追加できますが、ソースを変更しません。つまり、結果を取得するときに、作成されたフィールドを取得できません。

独自の ID を作成してフィールドに割り当てMyDocId、ES に ID を生成させないことをお勧めします。

ES 5 では、Ingest nodeと呼ばれる新しいタイプのノードが用意されていることに注意してください。これにより、Logstash フィルターで実行できるものと同様に、変換パイプラインを定義できます。その時点で、set プロセッサを使用して任意のフィールドを設定/作成し、目的を達成できるようになります。

{
  "set": {
    "field": "MyDocId",
    "value": "_id"
  }
}
于 2016-05-12T07:00:52.573 に答える
2

NEST は現在、生成された ID を POCO のプロパティにマップしません。response.Hitsを使用して、メタデータから手動でIDを割り当てることができます

var response = client.Search<Poco>();

var pocos = response.Hits.Select(hit =>
    {
        hit.Source.Id = h.Id;
        return hit.Source;
    }).ToList();

これは 1 月に再び議論され、現在の実装を維持することを決定しました。POCO_sourceは Elasticsearch の にマップされます。

于 2016-05-12T10:38:46.160 に答える