Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поиск по тегам или ключевым словам, Как реализовать поиск по тегам / 13 сообщений из 13, страница 1 из 1
11.01.2008, 16:17
    #35056480
Undef08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Привет.
Какую технику лучше всего реализовать при поиске по тегам или ключевым словам.
Использовать sql - мне кажется будет слегка тяжеловато, т.к. слишком много тегов и множество связанной информации (опять же ранжирование и вес слова)
Использовать поисковый движок - палить по мухам из пушки, не для этого их создавали.
Использовать внешний поисковый движок (Яндекс,Гоогл) - вообще не знаю есть ли такой зверь.
Короче посоветуйте или опытом поделитесь.
Заранее благодарен.
Undef
...
Рейтинг: 0 / 0
11.01.2008, 16:46
    #35056579
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Если под "sql-способом" подразумевается Like - то, конечно, будет тяжеловато.
А если хранить теги обьекта в отдельной связанной таблице и искать по равенству - чему там быть тяжелому-то?
И разные веса тегов при этом способе реализуются легко.
...
Рейтинг: 0 / 0
11.01.2008, 17:54
    #35056820
Undef08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Проблема в нескольких тысячах пользователей. MySQL и одновременно 50-100 crud операций.
...
Рейтинг: 0 / 0
11.01.2008, 18:02
    #35056862
shelsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Undef08Использовать sql - мне кажется будет слегка тяжеловато, т.к. слишком много тегов и множество связанной информации (опять же ранжирование и вес слова)

Undef08Проблема в нескольких тысячах пользователей. MySQL и одновременно 50-100 crud операций.

Недопонял.
Объясните внятно, что вы имеете в виду.
Пример там, сценарий что-ли




______________________________________________________
Ох ! Болят мои крылья ...
...
Рейтинг: 0 / 0
11.01.2008, 18:46
    #35056990
Undef08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
shelsoft[quot Undef08]Использовать sql - мне кажется будет слегка тяжеловато, т.к. слишком много тегов и множество связанной информации (опять же ранжирование и вес слова)

Undef08Проблема в нескольких тысячах пользователей. MySQL и одновременно 50-100 crud операций.

Недопонял.
Объясните внятно, что вы имеете в виду.
Пример там, сценарий что-ли



Пример:
Ну очень популярный блог, юзер Х написал что у него там накопилось и тег добавляет.
Например "видео, БМВ". Програмулина типа веб сайт пытается добавить новый топик в бд с тегами.
Теперь юзер Y ищет слово "файл" внутри програмулины и получает 10 000 страниц.
Юзер Y добавляет в поиск новое слово - "видео".
И получает 1 000 страниц.
Юзер Y уже пишет в строке поиска "БМВ видео файл" и тут начинается самое интересное.
Дело в том что слова "файл" и "видео" являются "шумными" и имеют более низкий вес слова чем "БМВ". Поэтому хотелось бы, чтобы если Y ищет "красивый БМВ файл" он всетаки увидит, что написал ему Х.
Теперь мы это умножаем на 100 одновременных запросов и начинаем думать, а не узкое ли это место в нашей системе.
Спасибо.
...
Рейтинг: 0 / 0
11.01.2008, 20:56
    #35057173
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Мне сложно сказать насчет MySQL, но на MSSQL у меня система поиска с ~1000 пользователей
одновременно онлайн работает вполне шустро и далеко не на топовом железе.
Вес тега вы же не в онлайне рассчитываете? То есть если в течение получаса пользователи добавят ~1000 постов с тегом, скажем, "Норд-ост" - нужно онлайн пересчитывать вес этого тега?
...
Рейтинг: 0 / 0
11.01.2008, 22:38
    #35057244
Undef08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Кот МатроскинМне сложно сказать насчет MySQL, но на MSSQL у меня система поиска с ~1000 пользователей
одновременно онлайн работает вполне шустро и далеко не на топовом железе.
Вес тега вы же не в онлайне рассчитываете? То есть если в течение получаса пользователи добавят ~1000 постов с тегом, скажем, "Норд-ост" - нужно онлайн пересчитывать вес этого тега?

Хотелось бы конечно онлайн.
...
Рейтинг: 0 / 0
14.01.2008, 17:20
    #35060636
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
Undef08Хотелось бы конечно онлайн.Заказчику действительно необходимо, что бы при добавлении 1000 постов в течение получаса вес тега пересчиталься именно 1000 раз, или достаточно пересчёта раз в час, если что-то менялось?

Хотя даже при онлайн пересчёте, если вес - всего-лишь количество упоминаний, то счётчик инкрементировать легко (или сделать некий пересчёт по инкрементированному счётчику).
...
Рейтинг: 0 / 0
14.01.2008, 20:49
    #35061086
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
А полнотекстовый поиск уже не справился?
...
Рейтинг: 0 / 0
15.01.2008, 10:46
    #35061755
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
DocAlА полнотекстовый поиск уже не справился?Конечно, полнотекстовый поиск будет медленнее для поиска по тегам.

Полнотекстовый поиск оптимальнее всего использовать только для полнотекстового поиска :-)
...
Рейтинг: 0 / 0
15.01.2008, 11:38
    #35061996
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
alexeyvg
Хотя даже при онлайн пересчёте, если вес - всего-лишь количество упоминаний, то счётчик инкрементировать легко (или сделать некий пересчёт по инкрементированному счётчику).

Если использовать инкремент счетчиков - поиск будет действительно происходить легко, но начнутся проблемы с транзакциями, которые вынуждены будут конкурировать за счетчики (в особенности за счетчики частых тегов с низким весом).
...
Рейтинг: 0 / 0
15.01.2008, 16:00
    #35063160
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
alexeyvg DocAlА полнотекстовый поиск уже не справился?Конечно, полнотекстовый поиск будет медленнее для поиска по тегам.

Полнотекстовый поиск оптимальнее всего использовать только для полнотекстового поиска :-)А что, поиск по тегам идёт только по точному совпадению, без учёта релевантности и т.п.? По-моему, по описанию задачи, полнотекстовый поиск -- самая колбаса.
...
Рейтинг: 0 / 0
18.01.2008, 18:25
    #35072503
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по тегам или ключевым словам, Как реализовать поиск по тегам
DocAl alexeyvgКонечно, полнотекстовый поиск будет медленнее для поиска по тегам.

Полнотекстовый поиск оптимальнее всего использовать только для полнотекстового поиска :-)А что, поиск по тегам идёт только по точному совпадению, без учёта релевантности и т.п.? По-моему, по описанию задачи, полнотекстовый поиск -- самая колбаса.Я, видя слово "тег", понял, что требуется точное совпадение.

Для неточного совпадения полнотекстовый поиск, конечно, проще в реализации, но всё равно медленнее.

Учёт релевантности, весов и т.п. проще, на мой взгляд, решаются без FTS.

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

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

При коротких транзакциях (ведь на один запрос будет одна транзакция с одним обновлением одной или нескольких записей весов счётчиков) это не будет проблемой.

Ещё можно и архитектурку пооптимизировать - например, если это WEB-сайт, в приложении делаем кэш с счётчиками и сбасываем их иногда (раз в минуту), прибавляя накопленные значения. Но это-уж для совсем большой нагрузки.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поиск по тегам или ключевым словам, Как реализовать поиск по тегам / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]