Возможно ли у Друпала организовать поиск налету?

Главные вкладки

Аватар пользователя moonman moonman 16 апреля 2007 в 23:06

По ряду причин я отказался от стандартного друпаловского поиска. Вчастности из-за растущей базы данных.

Вопрос вот в чём:
Можно ли организовать поиск налету по базе данных?
И как это сделать?

Т.е. меня интересует поиск без предварительной индексации и "складирования" всего этого "добра" в базе данных.

Комментарии

Аватар пользователя emzi emzi 17 апреля 2007 в 1:11

Конечно можно. Модуль только свой для поиска придется написать, и возможно подправить кое-что в базе. Как промежуточное решение, попробуйте настроить крон на более частый запуск (подозреваю, что дело в отставании поискового индекса от актуального контента)

Аватар пользователя moonman moonman 17 апреля 2007 в 1:17

А нет ли такого модуля уже в готовом виде у Друпала?
Или может быть есть какие-то другие решения (редактирование ядра например)?

Аватар пользователя emzi emzi 17 апреля 2007 в 10:53

> А нет ли такого модуля уже в готовом виде у Друпала?
> Или может быть есть какие-то другие решения (редактирование ядра например)?
в "готовом" виде не встречал, но разве это что-то меняет? Модули все равно пишутся людьми
не совсем понятно, что Вы имели в виду под словами "редактирование ядра". В большинстве случаев ковыряться в "ядре" - плохой подход.

Аватар пользователя Dan Dan 17 апреля 2007 в 7:22

Если отказался от встроенного поиска, значит контента много. Если контента много, значит поиск по базе будет долгий. Твой сайт можно будет повесить просто поиском Smile
Вывод - использовать внешний поиск, то есть внешние индексы. Ставь google site map, для лучшей индексации гуглом и пользуйся его поиском.

> .....попробуйте настроить крон на более частый запуск......
> может быть достаточно сделать небольшой модуль, который будет дергать крон при каждой публикации?....
при чём здесь крон? moonman не хочет использовать внутренний поиск Drupal'а

Аватар пользователя emzi emzi 17 апреля 2007 в 10:50

>при чём здесь крон? moonman не хочет использовать внутренний поиск Drupal'а
возникло (возможно, неверное) впечатление, что у него данные на сайте обновляются очень часто, и поскольку индексы обычного поиска зависят от крона, естественным следствием стало предложение запускать его почаще.

Аватар пользователя moonman moonman 17 апреля 2007 в 9:06

ОК, спасибо за ответы.

Но всё равно вопрос открытый.
Вещь безусловно может быть интересной для многих пользователей Друпала, которые заинтересованы в экономии места на хостере.
И к тому же есть много движков который использует такой альтернативный вид поиска.
Собственно почему бы и Друпалу его не иметь...

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 17 апреля 2007 в 9:09

Вещь безусловно может быть интересной для многих пользователей Друпала, которые заинтересованы в экономии места на хостере.
Ваш хостер ограничивает место в БД или на диске?

Аватар пользователя moonman moonman 17 апреля 2007 в 9:53

Ему без разницы.
Он выделяет по тарифному плану 200 Mb на всё, и будет ли это в БД или на диске ему всё равно.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 17 апреля 2007 в 10:14

Т.е. меня интересует поиск без предварительной индексации и "складирования" всего этого "добра" в базе данных.
В какой таблице БД хранятся поисковые индексы и насколько они велики (по сравнению с кешем, логами, строками перевода, ревизиями материалов и т.п.)?

Аватар пользователя moonman moonman 17 апреля 2007 в 10:29

У меня всё отключено.
Имеются только две таблицы имеющие "вес":
1) Хранение самого контента.
2) Хранение комментариев.

Хотелось бы иметь возможность поиска по таблице контента.

Аватар пользователя moonman moonman 17 апреля 2007 в 11:12

>не совсем понятно, что Вы имели в виду под словами "редактирование ядра". В >большинстве случаев ковыряться в "ядре" - плохой подход.

Я уже много вносил изменений в ядро, поэтому если внести ещё - хуже не будет Smile
Всё работает хорошо, а главное так как мне хочется.

По поводу того что я имел ввиду:
На некоторых движках (вчастности у punBB) можно изменить в ядре запрос и тогда движок начинает искать "налету" по таблице контента без предварительной индексации...

Но по-любому - хотелось бы иметь готовое решение, ожидать от меня что я что-то напишу не стоит Smile

Аватар пользователя Dan Dan 17 апреля 2007 в 17:49

> Я уже много вносил изменений в ядро, поэтому если внести ещё - хуже не будет Smile
Мда Smile
Если воспринимать CMS как труп, то да - лишний выстрел уже не повредит Lol

Аватар пользователя moonman moonman 17 апреля 2007 в 19:20

Почему как труп?
Всё очень быстро работает.
И есть все только то что нужно.
Ничего лишнего.

Нет только поиска на лету... что и явилось причиной моего первого поста.

Аватар пользователя Макс К. Макс К. 17 апреля 2007 в 20:03

moonman says: "Почему как труп? Всё очень быстро работает."

Ну хорошо, пусть будет "живой труп". Когда Вы уйдете с Вашего проекта, проект с покаханным ядром Друпала станет настоящим трупом. Мало кому из друпальщиков понравится брать на поддержку проект, где установщик перекроил ядро под свой вкус.

moonman says: Всё работает хорошо, а главное так как мне хочется.

Это ключевые слова для понимания Вашей позиции. Вы кроите мир под себя так, как Вам хочется. И не думаете о тех, кто придет в созданный Вами мир после Вас.

Хотя нужно строить проект на Друпале не так, как хочется. А так чтобы тот, кто придет после Вас на поддержку Вашего проекта, смог разобраться в проекте в течение часа. Это увеличивает стоимость проекта и позволяет при продаже получить за него настоящую цену.

Жизнь по стандарту

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

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

Аватар пользователя moonman moonman 17 апреля 2007 в 19:50

Smile
Бред какой-то...
Я не собираюсь никому отдавать свой проект!
Народ, не всё продаётся и покупается...
Хотя наверно я уже старею и чего-то не доганяю.... )))

Всё что бы хотелось - это поиск налету, что не является изобретением велосипеда - это вещи имеющиеся на многих движках как сами собой разумеющиеся.

Аватар пользователя Макс К. Макс К. 17 апреля 2007 в 20:16

moonman says: Я не собираюсь никому отдавать свой проект!

- Завтра трамвай переедет Вам обе руки и Вы продадите свой проект, чтобы оплатить лечение.
- Или послезавтра придет к Вам охотник за головами от MicroSoft и сделает Вам предложение, от которого Вы не сможете отказаться. После чего у Вас резко пропадет интерес к поддержке Вашего проекта.
- Или Вы женитесь (в первый раз, во второй раз, в третий раз) и нужны будут деньги на новую семью, и совсем не будет времени на баловство со своими проектами.

Смена владельцев проекта неизбежна. В течение 5 лет большинство проектов меняет своего владельца. Проект с самого начала нужно строить так, чтобы он не был привязан к разработчику. Тогда при продаже проекта за него можно получить нормальную цену. В нестандартных проектах из цены за проект вычитают стоимость приведения проекта к стандартному виду.

Аватар пользователя moonman moonman 17 апреля 2007 в 20:21

Чего-то посты бегают взад-вперёд :0)

Ладно...
Вопрос вобщем-то простой был.
Он всё ещё актуалный и открытый.

Плиз без философии.
Философию люблю, но всему же своё место Smile

Аватар пользователя Макс К. Макс К. 17 апреля 2007 в 23:20

moonman пишет: "Вопрос вобщем-то простой был. Он всё ещё актуалный и открытый."

Не знаю, что еще Вы ждете. Dan просто и открыто ответил Вам, что если встроенный поиск не справляется с нагрузкой, то на первое время можно использовать поиск от Гугла. А когда проект поднимется на ноги по деньгам, то перейти на более дорогой хостинг и восстановить встроенный поиск.

Если ждете советов, как ловчее похакать ядро, то сужаете круг советчиков до минимума. Публичное признание друпальщика, что он хакает ядро Друпала, равносильно тому, что он ставит крест на потенциальных клиентах, пришедших от Drupal.ru.

Аватар пользователя Dan Dan 17 апреля 2007 в 20:40

Это образно Smile

Изменение ядра Drupal похоже на изменение кузова автомобиля, когда особо не парясь, режут дырки в крыше под люки, стойки дверные и т.д., не думая о безопасности и прочих "заморочках". Для наших автомобилей, которые ТО пройти не могут, не то что краш-тест, это может не принципиально, но для буржуинских...

Аналогия понятна?
А быстрота - не показатель. С парашюта прыгаешь - тоже быстро летишь Smile

Аватар пользователя инигматик инигматик (не проверено) 18 апреля 2007 в 10:38

Меня тоже очень интересует эта тема.

Поиск давно отключен, сайт небольшой, но если можно сделать поиск только по таблице "node_revisions" то это было бы очень хорошо.

Я знаю что в DLE сделан такой поиск и это очень удобно и всё быстро работает.

Если можно скажите как сделать поиск по "node_revisions"?
Буду очень признателен (и не только я, думаю что желающих использовать поиск по таблице гораздо больше).

Аватар пользователя KCEOH KCEOH 18 апреля 2007 в 14:57

Поиск на лету в punBB - это так называемая баго-фича из-за кривого определения кодировок и языков (там cp1251 считается мультибайтовой, как и utf8 Lol

Вообще, если руки прямые - простой поиск сделать не трудно - достаточно знать основы SQL - SELECT ... LIKE "%test%".
А вот чтобы забахать хороший поиск - релевантность, морфологическую обработку слов - это потрудицо неслабо надо будет.