我不知所措至於如何具有以下結構映射文件用於搜索:ElasticSearch映射嵌套枚舉對象(I18N)
{
"_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
(表兄弟,在這種情況下)。 ID字段對於一級(根),二級(孩子和叔叔)以及三級(堂兄弟)是共同的,命名結構對於一級和三級也是常見的。
我的用例是能夠通過前綴和整個ID搜索ID(嵌套對象)。並且還能夠搜索子分類名稱,在(尚未定義的)分析器規則集之後。
我一直無法找到一種方法來以任何有用的方式映射這些。我不相信在ids
和names
中使用相同的技術會取得很大的成功,因爲名稱和文檔根目錄之間存在額外的映射級別。
我甚至不確定它是否可以映射。我相信至少原則上ids
應該可以作爲術語來映射,也許如果我以某種方式將術語索引爲names
。
我簡直茫然不知所措,文檔似乎沒有涵蓋像這個複雜映射級別的任何東西。
我對文件的控制有限(讀取:no),因爲它來自CouchDB河,而上游應用程序已經依賴於這種格式,所以我不能真的改變它。
我正在尋找能夠處理由以下僞條件,所有這些都應該匹配搜索:
- ID:
"123"
- ID由源(我不知道如何最好的紀念這個僞語言上)
- ID前綴:
"CDL"
- 名稱:
"Example"
,"Example Child"
- 本地化的名稱(我甚至不知道如何最好爲p seudo-mark this up!
tokenising和分析的細節我可以找出我自己,當我至少知道如何
- 對象映射當兩個鍵和對象屬性的值是重要的
- 當鍵和值很重要時,可枚舉對象。
我想我要將文檔預處理爲一組更簡單的文檔,並且表示我想要搜索的數據更好,而不是在elasticsearch上投擲大塊數據,並期望它在未經修改的情況下粘貼。 –