HNHacker News
TopNewBestAskShowJobs

wolfgarbe

350 karma · joined May 7, 2017

Founder @ seekstorm.com Search-as-service Maintainer @ SeekStorm - sub-millisecond full-text search library & multi-tenancy server in Rust https://github.com/SeekStorm/SeekStorm Maintainer @ SymSpell spelling correction https://github.com/wolfgarbe https://www.linkedin.com/in/wolfgarbe/ https://www.quora.com/profile/Wolf-Garbe/answers https://wolfgarbe.medium.com/
submissionscomments
wolfgarbe··on Show HN: Thruhikes – A list of long distance hikes around the world
List of long-distance footpaths

https://en.wikipedia.org/wiki/List_of_long-distance_footpath...

https://en.wikipedia.org/wiki/List_of_longest_cross-country_...

https://en.wikipedia.org/wiki/Long-distance_trail

https://en.wikipedia.org/wiki/List_of_long-distance_hiking_t...

https://en.wikipedia.org/wiki/Long-distance_trails_in_the_Un...

https://en.wikipedia.org/wiki/GR_footpath

First, you think you have a neat idea, but minutes later you have a Herculean task at hand ;)

wolfgarbe··on Show HN: Instantly search 28M books from OpenLibrary
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?
wolfgarbe··on A spellchecker used to be a major feat of software engineering (2008)
No, that's not grammar checking, but spelling mistakes that turn out to be real words!

If you misspelled "college" as "collage", or you misspelled "three" as "tree" the word you typed incorrectly happens to be an actual word itself! Correcting these types of errors is called "real word spelling correction".

Real-word spelling errors are words in a text that, although correctly spelled words in the dictionary, are not the words that the writer intended

https://www.researchgate.net/publication/221628953_Real-Word...

And even if there are several approaches evaluated, the problem is far from solved.

wolfgarbe··on A spellchecker used to be a major feat of software engineering (2008)
I get the point of the article that today's improved hardware allows things that weren't possible before.

But neither spell checking nor its more advanced siblings spelling correction or automatic spelling correction is solved. Here is an example:

"I want to by Apple"

"I want to be Apple"

"I want to buy Apple"

Because "by" is a genuine English word, a spellchecker based on a simple hashtable will not detect the error, which obviously exists. We need to look at the context of the whole sentence or even document. Today we can use deep learning and word embedding to solve/improve that problem.

A simple spelling corrector that is based on edit distance would always prefer "be" over "buy" because "be" is the more frequent word of both.

So the risk of all the easy accessible libraries for a certain task is, that you think the problem is solved, but you overlook many problems because the topic is much more diverse and deep than you would think at the first glance

Another point is that while hardware improved, also the expectations have risen. We expect milliseconds latency instead of seconds, we often require the software to work in a multi-tenant architecture with thousands or millions of concurrent users.

So even for seemingly simple and straightforward tasks, and despite all the exciting advances in hardware, always new challenges present themselves.

wolfgarbe··on Algolia releases new AI search features
No AI yet, but hosted search & crawling at a fraction of the price: https://seekstorm.com

30x more queries & docs per dollar spent;

20x speed compared to Lucene

wolfgarbe··on How do you spell boscodictiasaur? how we correct spelling and complete queries
[Disclaimer: I'm the author of SymSpell] >>"SymSpell is great for tiny datasets". Dictionaries with one million word entries are no problem, even for a maximum edit distance of 4. For comparison, the Oxford English Dictionary contains 301,100 main entries and 616,500 word-forms in total. https://towardsdatascience.com/symspell-vs-bk-tree-100x-fast...

SymSpell can be augmented with a Weighted Edit distance giving a higher priority to pairs that are close to each other on the keyboard layout or which sound similar (e.g. Soundex or other phonetic algorithms which identify different spellings of the same sound). There are two SymSpell implementations with a Weighted Edit distance available: https://github.com/MighTguY/customized-symspell https://github.com/searchhub/preDict

wolfgarbe··on How to write a spelling corrector (2016)
Here is the link to the SymSpell Github repository: https://github.com/wolfgarbe/SymSpell

An here a benchmark between Norvig's spelling corrector, BK-tree and SymSpell: https://towardsdatascience.com/symspell-vs-bk-tree-100x-fast...

wolfgarbe··on Riot – Full-text search engine in Go
It seems the whole index is kept in RAM. Thus the index size is limited by the amount of RAM available. This explains the impressive indexing and search performance (1M blog 500M data 28 seconds index finished, 1.65 ms search response time, 19K search QPS) The Persistent storage data is stored to the hard disk solely when the program closes. The data is then restored from the hard disk when the program restarts ( https://github.com/go-ego/riot/blob/master/docs/zh/persisten... ). This is a limited approach compared to Lucene/Solr/Elasticsearch LSM which handle high-volume inserts to its indexes with a log-structured merge-tree (LSM) and where the index size is only limited by the available hard disk space.
wolfgarbe··on Writing a Very Fast Hash Table with Tiny Memory Footprints
How does it compare to the "Fastest Hashtable" by Malte Skarupke? ( https://probablydance.com/2017/02/26/i-wrote-the-fastest-has... )
← PreviousPage 3 of 3