Karte ein Buch in Elasticsearch mit vielen Ebenen, verschachtelt gegen Eltern-Kind-Beziehung
Wenn Sie die Zuordnungen für einen Index erstellen, der mehrere Bücher durchsuchen kann, sollten Sie vorzugsweise verschachtelte Zuordnungen wie die folgenden oder Dokumente mit einem @ verwende Eltern-Kind-Beziehung
book: {
properties: {
isbn: { //- ISBN of the book
type: 'string' //- 9783791535661
},
title: { //- Title of the book
type: 'string' //- Alice in Wonderland
},
author: { //- Author of the book(maybe should be array)
type: 'string' //- Lewis Carroll
},
category: { //- Category of the book(maybe should be array)
type: 'string' //- Fantasy
},
toc: { //- Array of the chapters in the book
type: 'nested',
properties: {
html: { //- HTML Content of a chapter
type: 'string' //- <!DOCTYPE html><html>...</html>
},
title: { //- Title of the chapter
type: 'string' //- Down the Rabbit Hole
},
fileName: { //- File name of this chapter
type: 'string' //- chapter_1.html
},
firstPage: { //- The first page of this chapter
type: 'integer' //- 3
},
numberOfPages: { //- How many pages are in this chapter
type: 'integer' //- 27
},
sections: { //- An array of all of the sections within a chapter
type: 'nested',
properties: {
html: { //- The html content of a section
type: 'string' //- <section>...</section>
},
title: { //- The title of a section
type: 'string' //- section number 2 or something
},
figures: { //- Array of the figures within a section
type: 'nested',
properties: {
html: { //- HTML content of a figure
type: 'string' //- <figure>...</figure>
},
caption: { //- The name of a figure
type: 'string' //- Figure 1
},
id: { //- Id of a figure
type: 'string', // figure4
}
}
},
paragraphs: { //- Array of the paragraphs within a section
type: 'nested',
properties: {
html: { //- HTML content of a paragraph
type: 'string', //- <p>...</p>
}
id: { //- Id of a paragraph
type: 'string', // paragraph3
}
}
}
}
}
}
}
}
}
Die Größe eines ganzen html-Buches beträgt ungefähr 250 kB. Ich möchte Dinge wie @ abfrag
- the best matching paragraph including it's nearest paragraphs on either side
- the best matching section from a single book including any child sections
- the best figure given it is inside a section with a matching title
- etc
Ich kenne die Details der Abfragen, die ich ausführen möchte, nicht wirklich, aber es ist wichtig, dass ich sehr flexibel bin, um sehr seltsame Abfragen ausprobieren zu können, ohne all meine Zuordnungen zu stark ändern zu müssen.