2013-06-13 4 views
0

У меня есть веб-приложение, которое использует функции автономного хранения html5, чтобы пользователь мог получить доступ к нему без подключения к Интернету. Приложение по существу просто обслуживает html-страницы и немного css и javascript.поиск большого количества текста с использованием хранилища javascript и html5

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

Моя мысль заключается в том, что я могу сохранить текст, доступный для поиска, в веб-базе данных браузера браузера браузера и выполнить поиск либо через javascript, либо через sql api в браузере. У меня есть несколько вопросов о том, как лучше всего это сделать:

1) Я смутно помню статью о том, как реализовать что-то подобное, может быть, из airbnb? Кто-нибудь помнит такую ​​статью?

2) Текст содержит 2 000 000 слов, поэтому я бы предположил, что indexOf будет разбиваться на этот размер данных. Есть ли какое-либо случайное регулярное выражение? Каковы некоторые варианты реализации фактического поиска? (библиотеки, алгоритмы и т. д.). Любые предложения по статье для понимания компромиссов строковых алгоритмов поиска, если мне нужно спуститься по этой дороге?

ответ

1

Ну, я только что написал a quick benchmark для вас и был удивлен, обнаружив, что вам, возможно, удалось избежать использования String.indexOf(). Я получаю около 35 мс за поиск, что составляет около 30 запросов в секунду.

EDIT:a better benchmark. Кажется, что какая-то задержка инициализации, но похоже, что indexOf довольно быстро. Вы можете поиграть с бенчмарком и посмотреть, похоже ли, что это сработает для вас.