Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR would enable @ausi's new implementation on the Damerau-Levenshtein algorithm.
For those not familiar with it: Compared to regular Levenshtein, transpositions are counted as the cost of 1 typo as opposed to 2 typos in regular Levenshtein. What's a transposition? Scrambled letters right next to one another: e.g. "huose" instead of "house".
It happens quite often when users type. Hence I'd consider Damerau-Levenshtein to be more suitable for a search engine.
However, the PHP version is quite a bit slower than
levenshtein()
which is a native PHP/C function.So currently, the benchmark in
bin
is about 20ms slower (140ms instead of 120ms). However, the typos are a bit more UX friendly...so I guess it's a trade-off here at the moment.I was fiddling around with Damerau-Levenshtein automatons which might improve this a little but I'm not sure.