JavaScript библиотека для поиска в стиле поисковой системы?
Есть ли библиотека JavaScript, которая может определить, соответствует ли строка поисковому запросу? Он должен быть эффективным и обеспечивать расширенные функциональные возможности запросов, такие как Google или LexisNexis (такие вещи, как и / или операторы, синонимы и скобки). Любые расширенные функции поиска будут хороши; оно не должно быть точным соответствием какой-либо конкретной поисковой системе.
Мотивация: у меня есть HTML-страница с окном поиска, за которым следует группа абзацев (которые имеют уникальные идентификаторы и генерируются из массива JavaScript). Когда пользователь вводит поисковый запрос в поле и нажимает клавишу ввода, все абзацы должны быть скрыты (т. Е. Ихdisplay
установлен вnone
) если они не соответствуют запросу.
Моя текущая стратегия (с использованием jQuery):
Separate the query string into an array of keywords by splitting it over whitespace. Hide all paragraphs with$('p').hide()
.
For each keyword, show a paragraph containing it with $('p:contains("'+keyword+'")').show()
.
Это чрезвычайно ограниченная функция поиска, которая чувствительна к регистру, обрабатывает все ключевые слова как необязательные и не предоставляет таких операторов, какand
, or
или круглые скобки. Это также неэффективно, потому что оно проходит каждую строку один раз для каждого ключевого слова, даже если оно уже найдено.