ФорумПрограммированиеPHP для идиотов → Универсальный поиск по элементам разных сущностие

Универсальный поиск по элементам разных сущностие

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 11:18

    Как сделать сабж? Вот есть у меня новости, комментарии, фотогалерея, есть контент. Совершенно ж разные вещи, а поиск должен быть "сквозной": по всему сразу и на одной странице.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 31 июля 2010 г. 11:22, спустя 3 минуты 25 секунд

    по всему сразу и на одной странице.

    это не говорит о том, что надо искать сразу во всей куче :)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 11:42, спустя 20 минут 8 секунд

    какая есть идея:

    мы у каждого модуля, поддерживающего поиск создаем модельку, searchable, обращаемся к ней, она формирует ссылки на материалы… Ну, блин, я не знаю
    Спустя 93 сек.
    ну или мы создаем "индекс", обходим материалы, записываем их во временную таблицу, там же ссылки на материалы, потом ее перегоняем в сфинкс/Lucene и работаем с ней.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 31 июля 2010 г. 12:24, спустя 42 минуты 26 секунд

    Абырвалг:
    1. Сделать раздельный (ну точнее задаваемый пользователем) поиск по каждому разделу в отдельности.
    2. Нахуй поиск по комментариям? Ты бы ещё по ХТМЛ-коду страницы предложил. Но это ИМХО.
    3. сфинкс/Lucene, если я правильно понимаю, это контентный (текстовый или подобное) поиск. А что, если тебе нужен будет поиск-фильтр. Имею ввиду, к примеру, поиск юзеров вконтакте: выбираем город, пол, прочую лабуду, потом поиск по имени-нику-фамилии идет. В твоем случае этого не дано, получается.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 12:48, спустя 19 минут 7 секунд

    Я бы в твоем случае сделал, объект Searcher(или что-то в этом духе), а модели бы у него регистрировались, какие поля можно искать. А далее при поиске, он ищет по зарегистрированным объектам. Что-то подобное.
    Спустя 23 сек.
    правда добавится зависимость от этого объекта.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 31 июля 2010 г. 12:50, спустя 1 минуту 57 секунд

    Абырвалг, по вот мне последний комментарий и понравился. Я про то, чтоб придумать алгоритм поиска сначала по одному, потом по другому и т.д. Действительно ведь если делать под конкретный проект, то и схема обработки данных будет делаться под конкретную задачу. А при правильных индексах в базе все должно работать вполне нормально.
    А если делаешь для своих БЛ нечто универсальное, то ну её нах, твою будущую "джумлу" :)
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 13:07, спустя 16 минут 57 секунд

    Givi, та вопрос производительности пока на последнем месте.

    Что плохого в том универсальном поиске, который на скрине в аттаче? Вот его и пытаюсь сделать
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 31 июля 2010 г. 13:11, спустя 4 минуты 20 секунд

    я бы делал общий индекс для всех сущностей, куда выдирал бы текстовый контент из них - или важные части
    по индексу искал бы с учетом релевантности - фуллтекстом или сфинксом
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 13:17, спустя 5 минут 38 секунд

    Faster, это все понятно, как ссылки на элементы формировать?
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 31 июля 2010 г. 13:18, спустя 1 минуту 18 секунд

    Абырвалг, там не универсальный поиск, а заточенный под конкретный проект. это сто процентов, ибо не везде такой поиск есть. А так, то вполне возможно что поиск там идет простым перебором таблиц с сущностями, а не выборкой из одной базы "индексов".
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 13:31, спустя 13 минут 24 секунды

    это vBulletin 4. Ну у них через жопу все
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 13:37, спустя 5 минут 23 секунды

    Абырвалг, посмотри как в друпале поиск идёт… (я сам не знаю, но кто то говорил прикольно)

    а вообще я либо бы делал так: либо что бы у каждого модуля например был свой поисковик, либо дублировал данные в MyISAM таблице всех модулей. Таблица со специальной структурой, которая точиться по проект..

Пожалуйста, авторизуйтесь, чтобы написать комментарий!