Показать сообщение отдельно
  #3 (permalink)  
Старый 02.02.2009, 23:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

насколько я понял из документации по MySQL индексы типа FULLTEXT предназначены для поиска слов, а не абстрактных подстрок.и строка "Ochen_strashnoe_kino" будет считатся ОДНИМ словом согласно той же документации.
Документация для MySQL4, но в моем MySQL5 запросы по части строки не возвращали результата, как и предполагается в данной ситуации моей документацией
более того FULLTEXT является инструментом нечеткого(что является крайне нежелательным решением) и релевантного поиска в текстах естественных языков.

Сообщение от vitk
Мне кажется, что надо точнее сформулировать задачу - какие подстроки необходимо искать.
В идеале ЛЮБЫЕ, как и в оригинальном поиске от ДЦ.
там это достигается за приемлимое время лобовым поиском каждым клиентом по своему списку файлов, и исключением поисковых конструкция по типу масок подстановки и прочего
дальнейшее расширение функционала предполагает добавление сложного поискового синтаксиса как в поисковых системах.

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

Вопрос остается открытым:как сделать возможность поиска по ЛЮБЫМ подстрокам
Ответить с цитированием