tashkentchi
Новичок
Ага, у меня в конторе тоже граждане репы зачесали. Помимо прочего, дешево снимается проблема русской орфографии при фултексте.
Надо поэкспериментить.
Надо поэкспериментить.



А я предлагаю элементарный способ разбивки, который реализовать не влом. Вот код пхп, который ее реализует (для UTF8):Угу. Только полнотекстовый поиск требует, чтобы слова разделялись пробелами или хотя бы знаками препинания. А в именах файлов слова обычно не разделяются никак, или разделяются знаком _, или CamelCase’ом. Придумывать разбивалку слов, хранить рядом разбитую строку, иметь по ней полнотекстовый индекс — можно, но очень влом и всё равно всех случаев не предусмотришь.
$str = 'DVD±RW Sony DRU-810A DL Box';
$str = preg_replace("'[^A-zА-я0-9]'u", ' ', $str);
$str = preg_replace("'\s+'u", ' ', $str);
$str = strtolower(iconv('UTF8', 'CP1251', $str));
$str = explode(' ', $str);
foreach ($str as $k => $v) {
$len = strlen($v) - 1;
if (3 > $len) {
if (2 > $len) {
unset($str[$k]);
}
continue;
}
$str[$k] = '';
for ($i = 1; $i < $len; ++$i) {
if ($str[$k]) {
$str[$k] .= ' ';
}
$str[$k] .= $v{$i-1} . $v{$i} . $v{$i+1};
}
}
$str = implode(' ', $str);
$str = iconv('CP1251', 'UTF8', $str);
Имеется в виду это: http://www.sphinxsearch.com/ ?и правильно, на сегодня самая эффективная локальная поисковая машина.Очень интересно, изучаю.