Wicked
Новичок
Поисковик на MySQL + PHP
Тред поднимаю с целью оценки народом существеющего поисковика на MySQL + PHP и выяснения его перспектив.
Он обладает такими возможностями.
Плюсы:
1) Опциональный учет морфологии на Ispell.
2) Опциональный режим работы с фразами (т.е., можно сказать, учет позиций слов).
2.1) Поиск фраз в строгом порядке следования слов.
2.2) Поиск фраз в любом порядке следования слов.
2.2.1) Поиск фраз, когда некоторые из слов, содержащихся в них не найдены.
2.2.2) Поиск фраз, когда в тексте внутри них встречаются посторонние слова.
3) TFxIDF ranking
4) Задача поиска многих терминов внутри одного текста (полезная фича для классификации текстов)...
5) 99% работы выполняет MySQL сервер.
Минусы:
1) Не приспособлен к изменяющемуся контенту (нужно запускать полное переиндексирование)
2) Большой объем индексных файлов (таблицы инверсного индекса, таблицы статистики, mysql-индексы).
3) Т.к. я рассматриваю саму задачу поиска "чего-то" в "чём-то", то я не заботился о пользовательских интерфейсах, выводах результатов и т.д. и т.п.
Скорость работы пока что никуда относить не буду, т.к. оно depends on ..... %)
Основной принцип работы у него такой:
Инсталляция:
1) В бд засасываются данные для Ispell, там из них генерятся все остальные словоформы.
2) С помощью них индексируются статичные данные: корпус текстов для поисковика либо список терминов для классификатора.
Использование:
1) Принимается запрос от клиента. Поисковый запрос в виде население "российской федерации", либо аплоадится файл, который будем классифицировать.
2) Запрос тоже индексируется. Для него получаем таблицу инверсного индекса, таблицу статистики и т.д.
3) Итого мы получили 2 инверсных индекса в базе данных, которые нужно сравнивать. Сравнение индексов на присутствие цепочек записей из одного индекса в цепочках записей в другом. Цепочка записей олицетворяет собой либо один текст, либо одну фразу из запроса. Кстати, прошу заметить, что в этом поисковике (именно в функции поиска) нету ни одного запроса к MySQL, который бы зависел от запроса
Если народу интересно такое обсуждение, я перестану лить воду и перейду к архитектуре и скриптам %)
Тред поднимаю с целью оценки народом существеющего поисковика на MySQL + PHP и выяснения его перспектив.
Он обладает такими возможностями.
Плюсы:
1) Опциональный учет морфологии на Ispell.
2) Опциональный режим работы с фразами (т.е., можно сказать, учет позиций слов).
2.1) Поиск фраз в строгом порядке следования слов.
2.2) Поиск фраз в любом порядке следования слов.
2.2.1) Поиск фраз, когда некоторые из слов, содержащихся в них не найдены.
2.2.2) Поиск фраз, когда в тексте внутри них встречаются посторонние слова.
3) TFxIDF ranking
4) Задача поиска многих терминов внутри одного текста (полезная фича для классификации текстов)...
5) 99% работы выполняет MySQL сервер.
Минусы:
1) Не приспособлен к изменяющемуся контенту (нужно запускать полное переиндексирование)
2) Большой объем индексных файлов (таблицы инверсного индекса, таблицы статистики, mysql-индексы).
3) Т.к. я рассматриваю саму задачу поиска "чего-то" в "чём-то", то я не заботился о пользовательских интерфейсах, выводах результатов и т.д. и т.п.
Скорость работы пока что никуда относить не буду, т.к. оно depends on ..... %)
Основной принцип работы у него такой:
Инсталляция:
1) В бд засасываются данные для Ispell, там из них генерятся все остальные словоформы.
2) С помощью них индексируются статичные данные: корпус текстов для поисковика либо список терминов для классификатора.
Использование:
1) Принимается запрос от клиента. Поисковый запрос в виде население "российской федерации", либо аплоадится файл, который будем классифицировать.
2) Запрос тоже индексируется. Для него получаем таблицу инверсного индекса, таблицу статистики и т.д.
3) Итого мы получили 2 инверсных индекса в базе данных, которые нужно сравнивать. Сравнение индексов на присутствие цепочек записей из одного индекса в цепочках записей в другом. Цепочка записей олицетворяет собой либо один текст, либо одну фразу из запроса. Кстати, прошу заметить, что в этом поисковике (именно в функции поиска) нету ни одного запроса к MySQL, который бы зависел от запроса
Если народу интересно такое обсуждение, я перестану лить воду и перейду к архитектуре и скриптам %)