Ведение журнала промахов при поиске в реальном времени

StackOverflow https://stackoverflow.com/questions/379669

  •  22-08-2019
  •  | 
  •  

Вопрос

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

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

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

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

поскольку это поиск в реальном времени, мы получаем запросы по:

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

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

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

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

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

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top