LUCENE-9786: Hunspell suggestions: try moving the last character into the middle (#2399)

This commit is contained in:
Peter Gromov 2021-02-19 20:15:57 +01:00 committed by GitHub
parent 3ddc3c04a5
commit 5325d2e6f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 4 deletions

View File

@ -245,11 +245,14 @@ class ModifyingSuggester {
private void tryMovingChar(String word) {
for (int i = 0; i < word.length(); i++) {
String prefix = word.substring(0, i);
for (int j = i + 2; j < word.length() && j <= i + MAX_CHAR_DISTANCE; j++) {
String prefix = word.substring(0, i);
trySuggestion(prefix + word.substring(i + 1, j) + word.charAt(i) + word.substring(j));
trySuggestion(prefix + word.charAt(j) + word.substring(i, j) + word.substring(j + 1));
}
if (i < word.length() - 1) {
trySuggestion(prefix + word.substring(i + 1) + word.charAt(i));
}
}
}

View File

@ -13,7 +13,7 @@
# switch off ngram suggestion for testing
MAXNGRAMSUGS 0
TRY -
TRY -b
REP 2
REP alot a_lot
REP inspite in_spite

View File

@ -13,3 +13,6 @@ permanent-vacation/?
in
spite
inspire
Saiph
sahib
ship

View File

@ -12,4 +12,4 @@ Gandhi
McDonald
permanent
in, in a
Saiph, Ship, Sahib

View File

@ -13,4 +13,5 @@ Mcdonald
permqnent
permanent-vacation
permqnent-vacation
ina
ina
Sahip