Javaアプリケーションでは、JSON文書をElasticSearchに保存する必要があります。私はESで文書の重複を避けたいので、JSONオブジェクト/文字列に基づいて何らかのid(キー)を計算し、ESでインデックスを作成するときにこの文書のIDとして使用します。残念ながら、私はこのJSONの内部に自然なキーの候補を持っていないので、このキー生成のためのJSONオブジェクト/文字列全体を考慮する必要があります。Elasticsearch用のJSON文書にid(キー)を作成する
これは、JSON文書の例である:
{
"filterQueries":[
{
"type":"LessOrEqualQuery",
"characteristicId":630,
"value":799621200000,
"operator":"<="
}
],
"sortCriteriaIds":[
566,
572
],
"sortWeightCriteriaDirection":"DESC",
"sortTotalVotesCriteriaDirection":null,
"sortCriteriaCoefficients":{
"572":20.0
},
"sortCharacteristicId":631,
"sortCharacteristicDirection":"DESC",
"sortDecisionPropertyName":"createDate",
"sortDecisionPropertyDirection":"DESC",
"excludeChildDecisionIds":null,
"includeChildDecisionIds":null,
"pageNumber":0,
"pageSize":100
}
JavaでJSONオブジェクト/文字列に基づいて、このキーを計算するための最良の方法は何ですか?パフォーマンスは私にとって非常に重要な基準です。
JSONは同じになりますが、プロパティキーの順序は、非一貫性があり、結果のキーが同じである必要がありますか? – laser
理想的ですが、必須ではありません。私は自分で注文を維持しようとします – alexanoid
あなたは単純に文字列化してからsha256(文字列)できますか?またはより小さいサイズのハッシュ...ハッシュサイズに応じて、衝突の確率は異なります。 – laser