1

I want to use elasticsearch as a web search engine for books. A book has several editions with different titles in different languages, ISBN's as well as author names in different languages. I want that a book is found by any combination of title language and author name language i.e. the Latin name of Aristotle and the english title of one of his works.

How do I store all possible names of the author, all ISBN's, all titles with respective edition-id's of one book and information about the language in order to get the matching title, it's edition-id and its language as a result to a query?

I believe I need to use 'Nested Type', but I am not sure.

Like that I only find the _id of the book, but not more: { _id: 1 _source: { title: [ Odyssey Odyssee Odisea ] isbn10: [ 2080674722 5941453868 2670361734 ] fullname: [ Homer Omero ] } }

Yuki Inoue
  • 197
  • 8
fisch
  • 111
  • 4

1 Answers1

0

I found out how to do this with the help of this guide: The nested type is right and in my case the only option.

curl -XPUT localhost:9200/readgeek/book/1 -d'
{
  "names": [
    {
      "english": "Omero",
      "german": "Homer"
    }
  ],
  "authorid": "1",
  "ratings": "2589",
  "editions": [
    {
      "title": "Odyssey",
      "languageid": "123",
      "isbn10": "1234567890",
      "isbn13": "1234567890123",
      "ratings": "158"
    },
    {
      "title": "Odisea",
      "languageid": "150",
      "isbn10": "1234568890",
      "isbn13": "1234569890123",
      "ratings": "15"
    },
    {
      ...
    }
  ]
}'
fisch
  • 111
  • 4