Best-Practices
在彈性搜尋中儲存書籍時的結構
我想使用 elasticsearch 作為書籍的網路搜尋引擎。一本書有多個版本,不同語言的不同標題、ISBN 以及不同語言的作者姓名。我希望通過標題語言和作者姓名語言的任意組合找到一本書,即亞里士多德的拉丁名和他的一部作品的英文標題。
如何儲存作者的所有可能姓名、所有 ISBN、所有標題以及一本書的各自版本 ID 和有關語言的資訊,以便獲得匹配的標題、版本 ID 及其語言作為查詢的結果?
我相信我需要使用“嵌套類型”,但我不確定。
像這樣我只找到書的_id,但沒有更多:{ _id:1 _source:{title:
$$ Odyssey Odyssee Odisea $$ isbn10:$$ 2080674722 5941453868 2670361734 $$ 全名:$$ Homer Omero $$ } }
我在本指南的幫助下發現瞭如何做到這一點:嵌套類型是正確的,在我的情況下是唯一的選擇。
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" }, { ... } ] }'