Возможное объяснение проблемы поиска в Эгее

Роман Парпалак прислал интересное письмо, возможно, объясняющее, почему у некоторых не работает поиск в Эгее:

Теперь я окончательно понял, в чем дело. MySQL выкидывает из индекса слова, содержащиеся как минимум в 50% записей. Пока заметок две, любое слово содержится как минимум в 50% строк, и ничего не находится. Эксперименты эту версию подтверждают. Нужно минимум 3 заметки, чтобы поиск заработал.

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

Если всё так и есть, то я не буду считать это багом. До тех пор, пока я полагаюсь на встроенный черезжопый поиск MySQL, придётся терпеть все его «фичи». Когда-нибудь напрограмлю нормальный поиск, надеюсь, или, может быть, кто-то вызовется помочь с этим.

Дальше
21 комментарий
Али 2011

Sphinx наше всё.

Irek 2011

это очень странная отмазка, mysql просто как 3 копейки, сказал что ему делать — он сделает. надо смотреть что в коде и в запросах. просто так он не может отбросить статьи

Али 2011

2 Irek: RTFM на предмет того, как работает full-text индекс в MySQL

Дмитрий 2011

Да, поиск заработал.

Евгений Степанищев 2011

Я тут вспомнил как шесть лет назад решал проблему с 50% порогом.

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Boolean full-text searches have these characteristics:

  • They do not use the 50% threshold.
Андрей 2011

Да. Заработал.

Андрей Попович 2011

Прям как в этих ваших оупенсорсах сделанных программистами для роботов. Почему вы не сделаете, чтобы поиск просто работал?

Илья Бирман 2011

Троллинг, конечно, но в общем-то справедливый.

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

Роман Парпалак 2011

Андрей, установите поисковую форму Гугла. Тогда поиск будет просто работать.

Саша Сидоров 2011

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

Я из-за этого не люблю опенсорсные подобные проекты, всегда вылезает какая-то бага, и часто разработчики отмазываются, мол я не виноват или виноват не я. А парится в итоге только пользователь.

Илья Бирман 2011

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

Дима 2011

Мне вот нравится ваш движок только после вп не привычно что нет редактора. Был бы редактор текста fceditor или что то подобное и ему цены не было бы. Или возможность при установке выбирать с редактором или без

Илья Бирман 2011

Что значит «нет редактора»?

Дима 2011

Имел ввиду графический редактор. Как у wordpress например, а не тегами окружать в тексте например сделать шрифт увеличить или подчеркнуть.

Илья Бирман 2011

Понятно, ну это пока не скоро у меня будет.

Захар Кириллов 2011

А вот если бы это был опенсорс, то можно было исправить поиск, добавить графредактор и что угодно ещё буквально за один вечер. Ну а если пользоваться гитом, то всегда была бы «авторская версия» — такая, каким видит свой движок Илья — плюс куча форков, из которых любой желающий может выбрать себе подходящий. Ну а Илья мог бы брать из форков то, что сочетается с его философией и быстрее развивать «авторскую версию».

Илья Зверев 2011

Илья, в «цитатах» на сайте движка очень уныло выглядит З. вместо моей фамилии. Думаю, стоит её написать целиком (тогда ещё был глуп, сокращал).

Роман Парпалак 2011

Саша, вы не правы. Я предлагаю установить поисковую форму Гугла, потому что прекрасно представляю, как нужно потрудиться, «чтобы поиск просто работал», а не потому, что якобы не понял, как пользоваться движком (одно с другим вообще никак не связано).

Некто Неизвестный 2011

@Роман Парпалак Берем Google Search API, регаем ключик. Парсим JSON из ответа и рисуем в своем дизайне (но будет херь с пэйджингом, да).

Либо, ставим SphinxSearch и не ебем себе мозг всякими полнотекстами средствами MySQL, ибо это бредово.

Саша Сидоров 2011

Роман, дело в том, что вы не Илье предлагали поставить поисковую форму Гугла, а пользователю, который вообще с другой стороны на движок смотрит. Не обижайтесь, :-) но я до сих пор думаю, что вы не поняли, как правильно пользоваться движком.

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

Роман Парпалак 2011

Саша, я предложил пользователю идею. А вы так пишете, как будто я предлагаю пользователю ее реализовывать самостоятельно.

Илье я тоже, разумеется, про Гугл говорил.

Андрей 2011

Илья. Выкиньте нахуй уже эту недоDBMS и поставьте себе постгрес (про то чтобы выкинуть пыхпых я вообще помолчу). Это не троллинг, это голос разума походившего по граблям.

Илья Бирман 2011

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

artem 2011

Про движок:

  • Форматирование тегами — жестоко, конечно. Уж простой редактор то можно было бы и вставить даже на аксе.
  • Почему поле добавления записи сдвинуто в правую сторону, по середине было бы лучше.
  • Отсутствие древовидных комментариев — прям совсем плохо. Жутко же не удобно и обсуждение невозможно.
  • И редактирование сайдбара в коде, а не через форму в настройках — это не человечно.

И хорошо бы его выложить на github, может кто и поможет улучшить и добавить чего-то интересного и полезного.

(«адрес используется для отправки ответов и не публикуется»

ХТМЛ, который не работает, напиши HTML (ЭйчТиЭмЭль оно же, а не ХэТэЭмЭл), или вообще не пиши. По-русски он вроде ГТЯР.
Ctrl + Enter ты же русскими буквами не пишешь.

И: «Получать новые комментарии к этой заметке на эл. почту.»)

Дима 2011

artem полностью согласен с вами

Санек Панин 2011

Комментарий без смысла.

Мои книги