насколько я понял из документации по MySQL индексы типа FULLTEXT предназначены для поиска слов, а не абстрактных подстрок.и строка "Ochen_strashnoe_kino" будет считатся ОДНИМ словом согласно той же документации.
Документация для MySQL4, но в моем MySQL5 запросы по части строки не возвращали результата, как и предполагается в данной ситуации моей документацией
более того FULLTEXT является инструментом нечеткого(что является крайне нежелательным решением) и релевантного поиска в текстах естественных языков.
Сообщение от vitk
|
Мне кажется, что надо точнее сформулировать задачу - какие подстроки необходимо искать.
|
В идеале ЛЮБЫЕ, как и в оригинальном поиске от ДЦ.
там это достигается за приемлимое время лобовым поиском каждым клиентом по своему списку файлов, и исключением поисковых конструкция по типу масок подстановки и прочего
дальнейшее расширение функционала предполагает добавление сложного поискового синтаксиса как в поисковых системах.
Сообщение от vitk
|
надо просмотреть как устроены строки и составить для них список маркеров-разделителей.
|
строки устроены как любые допустимые имена файлов в WINDOWS-системах.
Это означает возможность строк длиной 254 символа UNICODE без символов «>», «<», «|», «?», «*», «/», «\», «:», «"»
В контексте задачи является допустимым приведение имен файлов к однобайтной кодировке(CP1251)
Сообщение от vitk
|
каждое имя файла (строку) дополнить различными вариантами подстрок, которые можно получить из основной строки с учетом спец.символов - принятых маркеров разбиения строки.
|
Это интересный вариант схожий с одним из моих отвергнутых решений.
но, выделеных подстрок(если их формировать в отдельной таблице) будет раза в 3-4 больше чем базовых имен файлов, что замедляет время поиска.
возможно он позволит искать по базе за приемлимое время.
НО!При этом остается проблема поиска в пределах "подслов".
Например такой поиск не найдет:
"strashnoe"для файла"OchenStrashnoeKino.avi" (проблема не в регистре, а в отстутсвие разделителей)
Возможностью такого поиска крайне нежелательно жертвовать
Проверю это решение по времени чуть позже.Тестовая база на 5 млн записей пока еще не спарсилась.
Вопрос остается открытым:как сделать возможность поиска по ЛЮБЫМ подстрокам