Регистрация пропущенных поисков - PullRequest
2 голосов
/ 19 декабря 2008

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

Обычно, это было бы действительно просто, но тот факт, что это живой поиск, сделал его немного сложнее.

Поэтому, когда кто-то ищет:

  • Этот поиск не дал результатов.

, потому что это живой поиск, который мы получаем:

  • Это с
  • Этот поиск r
  • Этот поиск возвращает n
  • Этот поиск не дал результатов.

Очевидно, что было бы лучше, если бы мы могли регистрировать только полную фразу, а не частичные.

Итак, пока я просто помещаю все запросы в таблицу, которая выглядит следующим образом: (id int, текст search_string, count int)

Единственное, что я могу придумать, - это помочь

  • Перед тем, как добавить новую строку в таблицу, выполните поиск строки поиска по поисковым запросам в таблице и, если совпадение не будет вставлено или увеличено. Однако я ожидаю, что эта таблица станет действительно большой, и подобный запрос станет очень медленным.

  • Напишите некоторый javascript, чтобы, если входное значение не изменилось в течение 2 секунд, отправьте специальный поиск в реальном времени с флагом, который говорит, что регистрировать его, если это пропущено.

Мне кажется, что должен быть лучший способ справиться с этим, но я ничего не понимаю. Есть идеи?

1 Ответ

0 голосов
/ 19 декабря 2008

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

...