Live data from Hacker News

What software engineers should know about search (2017)

scribe.rip

11–20 of 132 posts

Re: What software engineers should know about search (2017)

#11
Something completely off topic about the content of the article but not when it comes to the title.

Github search is a great resource for any engineer. It has saved me so many hours trying to figure some API out when I know there must be so many people who have used it before.

"SomeApiCall" extension:.[js|rs|java|cs|etc.]

Or to find projects that use a dependency you are not sure how to use

"SomeDependency" extension:.[toml|json|etc.]

Re: What software engineers should know about search (2017)

#12
A problem close to my heart. Good search is certainly still too difficult to pull off for small teams, and this was one of my motivations for building and open sourcing Typesense[1].

Most people think of search and immediately think of large data sets, but the problems that plague smaller datasets are equally interesting. It's less about performance and more about relevance. For e.g. searching across multiple fields for a compound query like "taylor swift style", requires breaking the query into segments (taylor swift | style) before searching for the appropriate fields. There are also a class of problems that traditional search engines that rely on BM25 or TF-IDF for ranking cannot reliably solve (e.g. searching on small texts like titles) where you have to consider distance between matching words (which TF-IDF and BM25 miss). Lastly, there is also personalization which is almost always left as an exercise to the reader :)

[1]: https://github.com/typesense/typesense

Re: What software engineers should know about search (2017)

#15
The simplest advice to engineers would be to not think elastic search as some black box that will solve all of your search problems. In fact, if you've never implemented search before it's the last tool you need. Postgres full text search is all you need. The most important thing in search is to surface relevant results and no one can quantify relevancy. It's as unquantifiable as it gets in technology. You need to understand what results are relevant for your users and find a metric that would work to rank accordingly.

Re: What software engineers should know about search (2017)

#16

Biggest advice I can give is you probably don't need search if you're indexable by search bots. No really. Look over people's shoulders sometime. They'll just go to Google and type in their search followed by terms such as Wikipedia, imdb, Stackoverflow, YouTube, Bandcamp, Amazon, eBay, Yelp... all sites that spent a lot of time on their search and have done quite a decent job. Oh well. So unless you really need it f…

A free text search on your content via a search input is the killer app of a search engine but it is not the only app of a search engine.

A search engine (and its backing index), just like a relational database, is a technology that allows you to build all sorts of solutions on top of it. Nobody says don't use a graph db because Facebook already has the best friend of a friend solution you could hope to find.

Re: What software engineers should know about search (2017)

#17
post #11

Something completely off topic about the content of the article but not when it comes to the title. Github search is a great resource for any engineer. It has saved me so many hours trying to figure some API out when I know there must be so many people who have used it before. "SomeApiCall" extension:.[js|rs|java|cs|etc.] Or to find projects that use a dependency you are not sure how to use "SomeDependency" extension…

i did not know about these[0] keywords so thanks for that :)

[0] https://docs.github.com/en/search-github/searching-on-github...

Re: What software engineers should know about search (2017)

#18
post #12

A problem close to my heart. Good search is certainly still too difficult to pull off for small teams, and this was one of my motivations for building and open sourcing Typesense[1]. Most people think of search and immediately think of large data sets, but the problems that plague smaller datasets are equally interesting. It's less about performance and more about relevance. For e.g. searching across multiple fields…

As a long time lurker of your work, and someone who works on a fair number of search engines myself - I'm curious, how well does TypeSense handle code search (punctuation, etc.)?

Re: What software engineers should know about search (2017)

#19

Biggest advice I can give is you probably don't need search if you're indexable by search bots. No really. Look over people's shoulders sometime. They'll just go to Google and type in their search followed by terms such as Wikipedia, imdb, Stackoverflow, YouTube, Bandcamp, Amazon, eBay, Yelp... all sites that spent a lot of time on their search and have done quite a decent job. Oh well. So unless you really need it f…

A free text search on your content via a search input is the killer app of a search engine but it is not the only app of a search engine. A search engine (and its backing index), just like a relational database, is a technology that allows you to build all sorts of solutions on top of it. Nobody says don't use a graph db because Facebook already has the best friend of a friend solution you could hope to find.

Yeah. Absolutely. There's plenty of merits in the pursuit.

But products are constrained by requirements and most of the time the manager thought search was in there, after a little talk, search was not in there any more.

There's resources, deadlines, budgets, contracts to satisfy, blah blah blah. The insight is this costly feature can usually be shaved from the requirements with a little conversation.

A big secret of "10x" programming is realizing "90%" of the work isn't truly necessary.

But yes, search is totally a fantastic thing to do if you have the space and expertise to do it.

Re: What software engineers should know about search (2017)

#20

Biggest advice I can give is you probably don't need search if you're indexable by search bots. No really. Look over people's shoulders sometime. They'll just go to Google and type in their search followed by terms such as Wikipedia, imdb, Stackoverflow, YouTube, Bandcamp, Amazon, eBay, Yelp... all sites that spent a lot of time on their search and have done quite a decent job. Oh well. So unless you really need it f…

Yeah, the key part is IF, you are indexable. In the project I'm working on everything is behind a paywall.
Post reply on HN