1. насчет регистра: странно, т.к. у меня он регистронезависимый. Найдите в файле search.cgi строки (подпрограмма sub search):
# Save the reg expressions to avoid rebuilding.
$or_match = $bool ne \'and\';
if ($or_match) {
for (0 .. $#{$search_terms}) {
next if (length ${$search_terms}[$_] < 2); # Skip single letter words.
$tmp .= "m/\\Q${$search_terms}[$_]\\E/io ||";
}
}
else {
for (0 .. $#{$search_terms}) {
next if (length ${$search_terms}[$_] < 2); # Skip single letter words.
$tmp .= "m/\\Q${$search_terms}[$_]\\E/io &&";
}
}
Особое внимание стоит обратить на:
$tmp .= "m/\\Q${$search_terms}[$_]\\E/io
"i" в конце выражения означает именно регистронезависимость. Может у Вас этого нет?
Насчет второго: почти никак. Можно конечно "отрубать" пару символов в конце каждого слова запроса - типа ищем по корню
но отрубание - метод топорный, кривой и неэфективный. Нормально оптимизировать поиск не удастся никак - самое лучшее, что можно посоветовать - это добавить дополнительное поле с ключевыми словами или с описанием.
Возможно стоит посмотреть моды на сайте разработчика - там есть несколько модификаций на тему поиска Links2