次の構造でドキュメントを検索用にマップする方法について、私は途方に暮れています。
{
"_id": "007ff234cb2248",
"ids": {
"source1": "123",
"source2": "456",
"source3": "789"
}
"names": [
{"en":"Example"},
{"fr":"exemple"},
{"es":"ejemplo"},
{"de":"Beispiel"}
],
"children" : [
{
"ids": {
"source1": "CXXIII",
"source2": "CDLVI",
"source3": "DCCLXXXIX",
}
names: [
{"en":"Example Child"},
{"fr":"exemple enfant"},
{"es":"Ejemplo niño"},
{"de":"Beispiel Kindes"}
]
}
],
"relatives": {
// Typically no "ids" at this level.
"relation": 'uncle',
"children": [
{
"ids": {
"source1": "0x7B",
"source2": "0x1C8",
"source3": "0x315"
},
"names": [
{"en":"Example Cousin"},
{"fr":"exemple cousine"},
{"es":"Ejemplo primo"},
{"de":"Beispiel Cousin"}
]
}
]
}
}
child
オブジェクトは、セクションに直接表示されるか、ドキュメントに(この場合はいとこと)children
としてさらにネストされます。uncle.children
IDs フィールドは、レベル 1 (ルート)、レベル 2 (子供と叔父)、およびレベル 3 (いとこ) に共通であり、命名構造もレベル 1 と 3 に共通です。
私のユースケースは、ID (ネストされたオブジェクト) をプレフィックスと ID 全体で検索できるようにすることです。また、(まだ定義されていない) 一連のアナライザー ルールに従って、子の名前を検索できるようにします。
これらを有用な方法でマッピングする方法を見つけることができませんでした。名前とドキュメント ルートの間に余分なレベルのマッピングがあるためids
、 とに同じ手法を使用してもあまり成功するとは思えません。names
mappableであることさえ確信が持てません。私は少なくとも原則ids
として、 は用語としてマッピング可能であるべきだと考えていnames
ます。
私は途方に暮れており、ドキュメントはこのレベルの複雑なマッピングのようなものをカバーしていないようです。
ドキュメントは CouchDB 川からのものであるため、ドキュメントの制御を制限 (読み取り: いいえ) しており、上流のアプリケーションは既にこの形式に依存しているため、実際に変更することはできません。
次の疑似条件で検索できるようにしたいと考えています。これらはすべて一致する必要があります。
- ID:
"123"
- ソースごとの ID (疑似言語でこれをマークアップする最善の方法がわかりません)
- ID プレフィックス:
"CDL"
- 名前:
"Example"
、"Example Child"
- ローカライズされた名前 (これを疑似マークアップする最善の方法さえ知りません!
トークン化と分析の詳細は、少なくともマッピング方法を知っていれば、自分で理解できます
- オブジェクト プロパティのキーと値の両方が重要な場合のオブジェクト
- キーと値が重要な場合の列挙可能なオブジェクト。