Seems like this exposes the flaw in the dataset. Eg, searching for "cixin liu" there are many different variations of the same book that show up, lots and lots of duplication.
I iterated through the "editions" dataset to build the index, which contains one record for each book (edition), which is why you see one result for each edition.
There's another dataset called "works" which has one record for all editions of a book, but it didn't have all the data points I wanted. So I decided to keep it simple for a weekend project and use the editions dataset.
I think that's a flaw [if you want to call it that] in the presentation of the search results, not the underlying dataset.
If you click through to the OpenLibrary dataset, you can see that the data model understands that the variations are editions of the same underlying text.