Make spell-checking case insensitive
authorDan Wells <dbw2@calvin.edu>
Thu, 7 Jul 2011 21:18:16 +0000 (17:18 -0400)
committerMike Rylander <mrylander@gmail.com>
Sat, 16 Jul 2011 13:29:18 +0000 (09:29 -0400)
As it stands, if you search for a proper noun using
lower case, but manage to trigger the "did you mean"
functionality, all the words are 'corrected' even if
just the case is wrong.  However, we are stripping
out the best correction precisely because it is the
same word, different case.  It is a bit confusing to
explain, but here is an example:

daniel potatoe

gets corrected to:

Daniela potato

This happens because the current spell check is case
sensitive, so 'daniel' is spelled wrong, but then we
remove 'Daniel' from the list of corrections
(presumably to avoid possibly suggesting terms which
would yield the same exact result set).

So, we either need to make the spell-check itself case
insensitive, or stop removing the re-cased corrections.
Since the catalog search itself is already
case-insensitive, I think it makes sense that the spell
check should follow suit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>

Open-ILS/src/perlmods/lib/OpenILS/Application/Search.pm

index 6de6225..7a2851d 100644 (file)
@@ -88,6 +88,8 @@ sub spellcheck {
                $logger->debug("spelling dictionary set to $dict");
        }
 
+       $speller->set_option('ignore-case', 'true');
+
        my @resp;
 
        for my $word (split(/\s+/,$phrase) ) {