Quick context: I built this from the Open Library (Internet Archive) books dataset (<a href="https://openlibrary.org/" rel="nofollow">https://openlibrary.org/</a>), as a follow up to this comment on the GoodReads post earlier today: <a href="https://news.ycombinator.com/item?id=25408186" rel="nofollow">https://news.ycombinator.com/item?id=25408186</a><p>Thank you @mekarpeles for helping me get access to the data quickly and giving me pointers about the schema.<p>I should add - I built this in about 12 hours as a weekend project, so there might be some lurking issues.<p>> Details about the Tech Stack:<p>The dataset has ~28.6 million books and is indexed on Typesense [1], an open source alternative to Algolia/ElasticSearch that a friend and I are working on.<p>The UI was built using the Typesense adapter for InstantSearch.js [2] and is a static site bundled using ParcelJS.<p>The app is hosted on S3, with CloudFront for a CDN.<p>The search backend is powered by a geo-distributed 3-node Typesense cluster running on Typesense Cloud [3], with nodes in Oregon, Frankfurt and Mumbai.<p>Here's the source code: <a href="https://github.com/typesense/showcase-books-search" rel="nofollow">https://github.com/typesense/showcase-books-search</a><p>[1] <a href="https://github.com/typesense/typesense" rel="nofollow">https://github.com/typesense/typesense</a><p>[2] <a href="https://github.com/typesense/typesense-instantsearch-adapter" rel="nofollow">https://github.com/typesense/typesense-instantsearch-adapter</a><p>[3] <a href="https://cloud.typesense.org" rel="nofollow">https://cloud.typesense.org</a>
Straight up impossible for me to search for Isaac Asimov's "I, Robot". Some kinda of input cleaning strips out the I from "I robot", and just searches "Robot". "iRobot" does not get the results. And the search does not accept commas. Just some of the fun that comes with searching I suppose.
Cool! Small bit of feedback: typing each character adds an entry to the browser's history which seems a bit excessive. Might consider using replaceState over pushState.
One usability feedback: The small OpenLibrary icon in the results looks a little bit like a trashcan. So after searching I was unsure what to do: I didn't want to got to Amazon nor would I want to trash a result.<p>Suggestion: Link the red book title to the OpenLibrary page.
A big problem with the OpenLibrary website is that there is no way to filter search results for books that are actually in the library, which I find quite odd TBH.<p>This "Instant Search" doesn't improve on that.<p>Also, some of the Amazon links are broken for me. They look like <a href="https://www.amazon.com/s?k=9798654289605" rel="nofollow">https://www.amazon.com/s?k=9798654289605</a>
I've searched for 'Lovecraft' and then opened first 15 results - no book was in library. Then I went to the openlibrary.org and again searched for 'Lovecraft' and among first 20 results I could only borrow one book for an hour. What is the point of showing books that aren't in library, or I am missing something?
When I read the title, I thought it was going to search inside the 28M books, but it's just the title, subject, and author. Still a cool project though.
Sadly it isn’t finding the first two books I looked for that are in the dataset.<p><a href="https://openlibrary.org/works/OL7116092W/The_church_of_Christ" rel="nofollow">https://openlibrary.org/works/OL7116092W/The_church_of_Chris...</a><p>And <a href="https://openlibrary.org/works/OL2525391W/Holiness?edition=" rel="nofollow">https://openlibrary.org/works/OL2525391W/Holiness?edition=</a>
You might want to clarify that this does not search 28M books, it searches metadata for 28M books. Very different.<p>I notice many titles did not have authors. I spot checked this one: <a href="https://openlibrary.org/books/OL25434821M/Still_Star-Crossed" rel="nofollow">https://openlibrary.org/books/OL25434821M/Still_Star-Crossed</a><p>This title has no author in the search results, but does have one on the linked page. Perhaps an import issue.<p>Edit: Forgot to say "This is awesome. Particularly for 12 hours work!"
Zero results for ISBN-13: 978-1888118049
ISBN-10: 1888118040
Unintended Consequences by John Ross<p><a href="https://openlibrary.org/works/OL2964952W/Unintended_consequences?edition=isbn_9781888118049" rel="nofollow">https://openlibrary.org/works/OL2964952W/Unintended_conseque...</a>
I would love, if possible, to do an exact multi-word search, e.g. "Bill Gates". Currently if the phrase is not found, you get results for one of the words. Putting the search in quotes does not work (like it does when performing a search on Google).
Great project. It seems though, that Books search does not support phrase search and stop words are ignored: "king of england" becomes king england. Is this by design? Does this affect only Books search or typesense generally?
Not sure if this is unintended behavior, but after clicking from this thread to the site and doing a few searches (all while remaining on the same page), I wanted to history back to this thread but it took me 7-8 clicks to do so.
It's super uncomfortable when any site uses OR based search. Is there a way to perform AND based search so that when I write more words, the results reduce instead of increasing exponentially?
Can't fault the performance! Nice work. My one UX suggestion would be to present search results in a more table-like layout, as reading both across and down to see every result is not ideal.
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 think relevancy can be improved for e.g. <a href="https://books-search.typesense.org/?b%5Bquery%5D=linus%20torvalds" rel="nofollow">https://books-search.typesense.org/?b%5Bquery%5D=linus%20tor...</a>