Ask HN: Is 'search' a solved problem?
I remember the time (not so long ago) when 'search' seemed to be the hottest topic in the industry. We had the rise of Google and competitors. There were search startups. Open source projects like Lucene and Solr were in the news. There were books published, blogs, conferences..
And now it seems that the industry have moved on. There is a million papers/books/blogs/online courses/video lectures/meetups about ML/AI, but I can't seem to find anything current on search.
What are the good resources to learn the fundamentals of search and keep up with the current happenings in that space? Not SEO, but more from the computer science/engineering point of view?
124 comments
[ 2.8 ms ] story [ 167 ms ] threadTakes days.
Minimum screen brightness. 1440p touch. Needs USB-A. 8th gen quad core. 20+ watt TDP. etc. Not too thin, not too thick. decent graphics.
Is something like this not available in the US/other territories? If not: here is your opportunity :-D
Regarding always being able to find what you are looking for on Google: I often struggle to find niche information using Google, and most content on the Web is not indexed by Google.
I'm more of the opinion that YouTube is less possible to compete with in any serious way.
Whether it is a good business strategy to challenge Google head-on is another question. Whether there is a sure way to learn and engineer said systems on extremely large scales is another question.
Some ideas:
- Only academic papers
- Only news sources
- Only hacker topics
- Only financial topics
- Only small bloggers
- Only literal keyword search which Google discontinued
Get traction in that domain, then build out from there.
p.s.: All the bad searches on the various products I use or the websites of some companies make me almost want to get back into search. Because even for things that ARE solved in the technical sense there seems to be no "out of the box" solution or people would use it.
edit: To expand a bit - all the search solutions I've seen which weren't for Internet search were more or less bespoke, so you needed a project to get something decent. Sure, you can install a plain Lucene/Solr, but Lucene/Solr cannot understand the way your data works, which parts are important or if you want to show results which are older further down (or not!). They have decent defaults for the "common case", but you have to tune them for every customer/installation for good results and that makes it non-scalable. And being scalable without effort is usually one of the requirements people have for something to be "solved".
At work we are nowhere near asking an intranet "show me the last pentesting report for Tony's new website" or "show me the change requests for the failed change this quarter". I know exactly what I want, and how to ask, bit I will not get the results I want.
In terms of fundamentals, I'd suggest reading about tf-idf, which is the basis of Lucene (which powers Solr and Elasticsearch).
Regardless of query length it's strange that I often find the second result better than the first one.
Finding something in Gmail can be a real challenge, I wonder if would be possible to unleash Algolia on your inbox.
And for what good reason? Certainly not because of past attempts. In fact, Google has bought some startups that were involved with search.
I'd be interested in knowing what you find. There are bound to be many relevant texts not labeled as search, if you know what you are looking for. Perhaps I would start with web crawlers and go from there.
When Google's approach isn't giving me an answer, it'd be nice to try a search that wasn't based on a discoverability feedback loop.
https://twitter.com/patrickc/status/953011978217205760
Yacy can do it. You can use it as a proxy and it does index all visited pages. (I tryed Yacy, but never this feature).
Search is interesting! And it is important to differentiate the web search (Google) and domain-specific search (Solr, Elasticsearch, recent release of http://vespa.ai/). You cannot tune Google to your domain needs and understanding.
For domain-specific search, the basics are there. Even the fancy "basics". It is now very easy to add search to one's stack. In fact, Solr is in so many stacks, it is not even mentioned much anymore. But we still get the contributions back from Cloudera, Bloomberg, Alfresco, etc.
So, the cutting edge in Search is now on personalization, relevancy-tuning, indexing non-text content (music, images, etc), multi-word semantic search, graph traversal and, yes, Machine-Learning. See, for example, https://lucene.apache.org/solr/guide/7_3/learning-to-rank.ht...
In fact, the Solr conference that used to be called Lucene/Solr Revolution is now Activate and has focus on ML/AI because the topics are really starting to overlap (https://activate-conf.com/). You can see the interesting topics from last conference: https://www.youtube.com/playlist?list=PLU6n9Voqu_1FMt0C-tVNF...
Learning (Solr at least) is a different issue. There are so many features now that the Reference Guide is absolutely enormous. And the demo schemas are still a bit of a kitchen sync, making it look more complicated than it needs to be. And, the last comprehensive book was several versions back. Again, that's because Solr is big and is growing really fast still...
Actually that's why I chose to be a popularizer within the Solr community and focus on making it easier for beginners to start.
See, for example, my latest presentation slides at: https://www.slideshare.net/arafalov/rapid-solr-schema-develo... and the backing configuration repo: https://github.com/arafalov/solr-presentation-2018-may (includes smallest viable useful schema)
(tl;dr) Search is still exciting, lots of cutting edge cool stuff, and there are people trying to make it easy for beginners to start.
This is why google often is bad for searching tech things. You get often very old useless links for a topic
Google focused on a specific subset — you enter a few keywords or a phrase, and the machine returns the top ~10 links to pre-existing (indexed) web pages. But that's not all there is to search!
Challenges:
1. Intranets: internal documents, typically in different modalities (FAQs, support cases, wikis, public pages) and across diverse storages that evolved throughout the years via acquisitions and osmosis.
2. Clustering: you don't have any keywords, but rather want to find how a particular document (legal template, its clause section) evolved over time. You want to avoid using keywords. Search for similar documents or document sections. Find similarity between two documents that is based on semantics rather than query keywords. Applications: eDiscovery, contract management…
3. SME & Intent: "relevant result" means different things in different domains, or even different aspects of a single domain. Google is doing an amazing job with their "single search box", but there are industries (for example, HR) where search precision matters much more than recall. More elaborate, focused, domain-specific facets or even dialogue systems make sense there.
Commercial plug: we built a search solution focused around semantic search (in the "machine learning and vectors" sense, not "sematic web and RDFs" sense), https://scaletext.ai. It's still early days in that our clients are all over the place, but to say Google/Lucene solved search is patently false.
2) Google does not do simple keyword matching, and certainly has a strong sense of "semantics".
3) Try searching "Cheap hotels in San Francisco" or "Plumber jobs in Chicago" in Google. Just because it's a single search box does not mean all results are generated/displayed in the same way.
My point was more that encoding the relevant signals into a single general-purpose search box (a sort-of natural language) is an inherently noisy, ambiguous process. When you know what kind of search you want, it's better to factor out the relevant parameters and feedback loops explicitly, give them a clear UI and search flow. Rather than have users fumble with double quotes and double-guessing the query parser.
Search in one language, get results in multiple languages. The context in which this came up was in organisations such as the EU or the Nordic Council.
Another one that I would like to see improved is better search for scientific articles.
[1]: https://radimrehurek.com/gensim/
Ask Google who played the mens semifinals of Wimbeldon three years ago and Google will tell you it indexed 6 million pages to provide a link that may or may not have the 4 names I am looking for. Why is it doing all this pointless work? And why is it that dumb in 2018?
We have got so used to what it does that lot of people have stopped asking questions about how it does things and wether all the stuff it does is required.
Wolframalpha, Freebase/SemanticWeb/Wikidata/dbpedia approaches, NLP/NLU are still very underdeveloped and untapped.
Having open and distributed indexes like we see in nature with DNA is also totally unexplored because of Google type centralised index monopolies in various domains. It just takes a Gig or so to store a local offline index off all Wikipedia or Stackoverflow pages. And given the massive RAM and hard disks everyone has these days why aren't we seeing sophisticated local offline search apps?
The internet is getting exponentially more noisy day by day and in many ways its easier to find quality info going through a top notch library's index than wading through Google's. So there are lots of blindspots and areas to explore in search right now imho.
My first query string idea was 'men semifinals Wimbeldon 2015 wiki' and the resulting page contains the list in a nice format.
This is because I have the context that wiki pages would contain this sort of information. Google and others are getting better at processing more vague queries (like 'three years ago'), but I do agree we are nowhere close to being able to ask general questions. Knowing how to use the tools like google search (and other searches) and really advanced queries syntax is a force multiplier/enabler.
That's a job for computers to do.
You sure about that?https://www.google.com/search?client=safari&hl=en-us&q=who+p...
With advances in spamming, internet/email search is getting to be a harder problem every year.
I remember when Google was quite effective in finding what I need, but nowadays it's dismal. As an example, I googled for "storename return policy", and got page after page of results. All of them were tagged "missing storename", so just randomly picked return policies from other stores.
Search is their bread and butter, and they're probably keenly aware of the diminishing quality of results. I'd love to hear what's caused the recent trend for results that are missing a few of the most crucial keywords. Probably over-enthusiastically trying to filter out keyword farms.
I’ve noticed Facebook’s search has started catering to the lowest common denominator as well. Searching for (made-up example) “Louis Potter” used to give all exact matches priority. Current results look something like 1) Louis Potter 2) Luis Porter 3) Louis Potters 4) Louis Potter (#2). I don’t like when search engines assume that I’m misspelling words/names, and it would be nice if they adapted for individual behavior in this regard.
"restaurants liked by people who like Joe's Pancakes and Green Dragon Mexican Pizza"
"movies liked by people who are friends with people who like Back to the Future and Arrested Development"
"people who live nearby and like Green Dragon Mexican Pizza and Arrested Development"
"friends of friends of friends who like Arrested Development and Joe's Pancakes"
"Friends of Megan Albert friends who are women named "Erin" Chipotle employ"
I think you can see why they removed it.
this URL might lead to something like "restaurants liked by people who like Snow White" https://www.facebook.com/search/130104022710/likers/pages-li...
https://old.reddit.com/r/dredmorbius/comments/69wk8y/the_tyr...
I think it helps to put the critical search term in quotes. At least in DuckDuckGo, `"storename" return policy` would exclude results that are missing "storename".
I don't want to fight with the search engine: "you meant this!" -- "nno, find me that" -- "you surely meant this so here it is!" ...
If there was a result containing the whole search string it would (I believe) have been the first one.
"So what's the problem here"? The problem is, the search engine threw away one third of my query terms, and then gave me all chaff. Apparently I should've thrown in some random punctuation to convince it to actually use all of them.
Seems to work.
Companies can have a great intranet search experience, but it requires time to properly configure the schema, train taxonomies, tune relevance, and understand the resources required to make it work quickly and reliably.
Document processing pipelines often require customization to meet the above requirements, and multi-lingual search may never be perfect within an organization due to differences in the way wordbreaking is done.
Some companies do put a lot of effort into doing this right and getting the best experience possible today, but most don't.
That way each provider can focus on building a good platform with clever machine learning tailored to that dataset.
We also need the return of proper Boolean operators and complex nested queries. Yes, Joe Public will never use them, but a lot of people who search the internet as part of their jobs, or just have deep interests and would love to have all those advanced search features back, and be able over to override the 'fuzzy logic' that generic Search engines such as Google enforce on us.
I also disagree that all sites need to be mobile first. If I have a site that provides software for the Enterprise Sector, Google will still penalise me if my site isn't responsive, even though my target market is IT professional sitting in front of powerful laptops/desktops.
As many would agree, Google have too much power in the Search space, and they have basically dictated to the world how Search should be done, whether they are actually right or not.