За последние 24 часа нас посетили 33002 программиста и 1821 робот. Сейчас ищут 872 программиста ...

MySQL Как найти в базе слово по предложению

Тема в разделе "MySQL", создана пользователем Catrina, 4 июл 2015.

  1. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Знаю, как найти предложение по слову (маленько знаю, что такое like),
    но задача противоположная:
    Дано предложение (это просто пример): "У Саши красивая машина"
    Дана база:
    id | предмет | назначение |
    1 | машина | ездить |
    2 | телевизор |смотреть |

    Нужно по предложению "У Саши красивая машина" в выдаче получить "ездить" или весь ряд ' * '. Машина - совпадающее слово. Не представляю, как это сделать. Спасибки!

    Добавлено спустя 7 минут 54 секунды:
    Ещё скажу, для чего мне. Решила сделать определялку ботов. Все боты будут храниться в базе MySQL в виде записей YandexBot, YandexImages и т.д. Но на сайт будут заходить не YandexBot, YandexImages а Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) или Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots).
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    муть мутная, соответственно не правильная архитектура, может лучше задаться вопросом как правильно вычислить поискового бота?

    PS по теме, есть такая штука в MySQL - FULLTEXT, она должна от части помочь, поищи в интернете описание, там есть и примеры.
     
  3. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    получить список ботов для поиска,
    найти совпадения в строке User Agent,
    принять решение что с этим делать.
    Например в базе храним список искомых ботов.
    При обращении получаем спиок в виде массива id(ключ)=>значение,

    Для чего это?

    Добавлено спустя 5 минут 27 секунд:
    Ссылки чтоли прятать?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    По первому вопросу, можно предложения на слова разбить и поискать в базе через IN.
    Ещё sphinxsearch можешь посмотреть.

    Ещё есть готовые классы https://github.com/JayBizzle/Crawler-Detect
     
  5. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Ну конечно же! Я и не говорю, что то, что я пытаюсь сделать - правильно. Архитектуры и нет никакой пока. Есть только задача:
    вычислить поискового бота и сохранить запись о посещении. Если есть способ лучше, чем я пытаюсь тут сделать - я только за! :)

    Добавлено спустя 11 минут 48 секунд:
    Я тоже считаю, что должно быть проще решение. Придётся "вскрыть" какой-нибудь готовый модуль и посмотреть, как он работает. ;)
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну вот можно набрать в поисковике "php как определить поискового бота"

    а насчет БД, я бы сделал такую таблицу:
    id само собой
    user_agent (varchar 1000) сюда будут записываться данные из $_SERVER['HTTP_USER_AGENT']
    visit_date (дата) и все

    так же можно сделать так:
    id само собой
    user_agent данное поле будет уникальным
    last_visit дата последнего визита
    visit_count счетчик, сколько раз было посещено этим ботом

    и есть запрос для уникального поля, если перевести его в псевдокод, выглядеть оно будет так:
    если еще нет добавить запись, а если есть увеличить счетчик на 1 и поменять дату на свежую.

    PS плюсы и минусы обоих вариантов я думаю расписывать не стоит.
     
  7. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Спасибо. Я бы добавила ещё поле current_url или что-то в этом роде, посещённая страница.
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    visited больше подходит, нет?
     
  9. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Наверное)