- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
MySQL, всегда пользовался обычным Like '%фраза%' для реализации поиска на сайте. Но если база достаточно большая, то like будет работать медленно.
Пришла идея сделать библиотеку слов и таблицу соответствия слова нужному объекту, т.е. есть таблица слов с полями: ID слова, слово. И есть вторая таблица: ID слова, ID объекта
Но, при выдаче результатов поиска хотелось бы сделать сортировку по выбору, но по полю из таблицы объектов, например, цене.
Если искать объект по слову в БД, то используем две таблицы и запрос примерно такой
Если использовать сортировку, то уже третья таблица включается
Если в базе немного данных, то поиск быстрый, а если несколько десятков тысяч объектов и у каждого около 10 слов, то поиск с сортировкой работает очень долго.
Как сделать правильно?
ИНдекс по словам - гуд, но использовать такую вещь надо тока если поиск. запрос из 1 слова....
Также, слова должны быть в инфинитивах! Это важно! Руский язык многообразен.)
Как сделать правильно?
что значит правильно? если ты делаешь для себя, то правила задаешь ты сам.
попробуй sphinx search. там довольно серьезно все проработано и со скоростью и со словоформами. однако он сложнее в эксплуатации и поэтому не каждому сайту подойдет.
Почему по одному слову? Можно же like '%фраза1%' or like '%фраза1%'
humbert добавил 22.09.2011 в 12:30
что значит правильно? если ты делаешь для себя, то правила задаешь ты сам.
Чтобы поиск по БД не тормозил, если сделать индекс базы слов, то поиск быстрее будет.
А штатный полнотекстовый поиск чем не устраивает?
Что значит штатный?
Что значит штатный?
Ну вот этот который
http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html
У меня на нескольких сайтах очень шустро ищет по гигабайтовым таблицам.
[umka], спасибо, интересно. Я самоучка, отсюда и пробелы в знаниях.
По части слова оно ищет?
[umka], спасибо, интересно. Я самоучка, отсюда и пробелы в знаниях.
По части слова оно ищет?
Ищет, если используется boolean mode:
http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
Там с помощью различных операторов можно довольно гибко управлять поиском.
Вообще, если у вас основная задача — это поиск, то посмотрите ещё в сторону PostgreSQL. Там есть встроенный русский поиск с морфологией.
[umka], спасибо, интересно. Я самоучка, отсюда и пробелы в знаниях.
По части слова оно ищет?
Не ищет.
10 частей слова
Ищет, только если эта часть слова с начала слова идет.
Это плохо.