Библиотека JavaScript для поиска в стиле поисковых систем?

. Существует ли библиотека JavaScript, которая может определить, соответствует ли строка поисковому запросу? Он должен быть эффективным и предоставлять расширенные функции запросов, такие как Google или LexisNexis (, такие как и/или операторы, синонимы и круглые скобки ). Любые функции расширенного поиска были бы великолепны; он не обязательно должен точно соответствовать какой-либо конкретной поисковой системе.

Мотивация :У меня есть HTML-страница с окном поиска, за которым следует набор абзацев (, которые имеют уникальные идентификаторы и генерируются из массива JavaScript ). Когда пользователь вводит поисковый запрос в поле и нажимает ввод, все абзацы должны быть скрыты (, т.е. их displayустанавливается на none). если они не соответствуют запросу.

Моя текущая стратегия (с использованием jQuery):

  1. Разделите строку запроса на массив ключевых слов, разбив его по пробелам.
  2. Скрыть все абзацы с помощью $('p').hide().
  3. Для каждого ключевого слова покажите абзац, содержащий его, с помощью $('p:contains("'+keyword+'")').show().

Это чрезвычайно ограниченная функция поиска, чувствительная к регистру -, рассматривающая все ключевые слова как необязательные и не предоставляющая такие операторы, как and, orили круглые скобки. Это также неэффективно, потому что он проходит через каждую строку один раз для каждого ключевого слова, даже если оно уже было сопоставлено.

19
задан Jordan 6 August 2012 в 16:54
поделиться