Форум vBTorrents.org

Форум vBTorrents.org (https://vbtorrents.org/index.php)
-   Вопросы, предложения (https://vbtorrents.org/forumdisplay.php?f=6)
-   -   Поиск по словосочетанию, по жанру (https://vbtorrents.org/showthread.php?t=84)

Azec 05.10.2009 22:09

Поиск по словосочетанию, по жанру
 
Интересная задачка.
Использую модицированый Release Wisard Light
У меня есть жанр - "New Age" в середине пробел.
Вот такую штуку поиск не находит, так как индексируются только слова более 4 символов, ну и пробел все портит.
У меня много жанров и других оций релиз визарда которые имеют пробелы и запитые в тексте.

Как бы это разрулить.

1. Вводить какие-то невидимые ббкоды ( которые выводятся в ноль ) что бы потом искать по ним?
2. Думаю использовать метки? ( ведь полнотекстовый поиск ресурсоемкий, а пользователи частенько могут кликать на ссылки типа жанра )Надо проверить, можно ли делать метки из нескольких слов.
По идее поиск по меткам должен быть много быстрее обычного поиска.
3. Переписать все названия жанров так что бы вместо пробелов были знаки "_"
(тоже так себе решение, так как тогда поисковики будет промахиваться )
4. Заменить все жанры и прочее на аналоги из одного слова?
( почти нереально, так как некоторые вещи описываются только словосочетаниями )

*****

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

При редактировании сообщения буду метки обновлять.

Думаю, это правильное решение, ведь метки ровно для этого и нужны.

Разобраться бы теперь как с этими метками работать... =)

Skald 06.10.2009 14:37

Azec, Надо поиск запускать в кавычках - тогда не будет проблем
именно так:
"New Age"

Azec 06.10.2009 15:11

так не работает, это первое что я попробовал

буду в RW прикручивать метки, уже научился добавлять метки в любое время
а вот удалять те кторые отпали при редактировании пока неполучается +
почему то при добавлении такой функции в functions_yo_rw_lite.php

PHP код:

function DeleteAllTagsInThread() 
{
    
$db->query_write("
                DELETE FROM " 
TABLE_PREFIX "tagthread
                WHERE threadid = 
$threadinfo[threadid]
            "
);


она не срабатывает.

и так неработет:

PHP код:

function DeleteAllTagsInThread($threadid
{
    
$db->query_write("
                DELETE FROM " 
TABLE_PREFIX "tagthread
                WHERE threadid = 
$threadid
            "
);


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

Если подскажите, как с метками работать, буду очень благодарен, или почему мой $db->query_write несрабатывает.

PS: Все это дело несрабатыывает и в результате конечный скрипт выдает пустой html

Skald 06.10.2009 15:14

Azec, С фул текстовым поиском гарантированно работает. Если надо искать еще ббкоды, то должно выглядеть так (пробелы обязательны, хоть в самом тексте их и нет) :
"[genre] New Age [/genre]"

Azec 06.10.2009 16:31

Хм..
"Joy of live" Ищется а
"New Age" неищется...

ну вообщем метки всеравно буду делать

Skald 06.10.2009 17:56

Azec, Значит надо или перестроить индекс поиска или проверить кодировку в базе (хотя это по англ. поэтому кодировка по идее должна влиять).
Да и вообще проверить что включен фултекст поиск

Azec 06.10.2009 19:59

Там было то что индексюруются слова от четырех символов.
Думаю в этом дело.
Саму задачу я решил, посредством тегов.

Попробую сегодня выложить продукт.


Текущее время: 10:08. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4 Patch Level 6
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot