Частичный поиск Javascript - PullRequest
       1

Частичный поиск Javascript

0 голосов
/ 28 февраля 2011

По сути, у меня есть массив, для которого мне нужно выполнить частичный текстовый поиск (все элементы - английские строки). Массив может содержать около 1000 элементов, и мне нужно иметь возможность (эффективно) искать строку в каждом элементе.

Является ли моя единственная опция полным циклом массива, в котором каждая строка работает с .match ()? Или будет ли лучшая альтернатива?

Одна из моих идей заключалась в том, чтобы разбить массив из 1000 элементов на куски размером около 100, а затем .join.match () в этом разделе. Таким образом, если элемент был найден, мы могли бы просмотреть его, если нет, мы могли бы перейти к следующему фрагменту. Очевидно, что размер порции нужно немного подправить, но даст ли это жизнеспособное решение?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Вы можете попробовать использовать инвертированный индекс . Вот хорошая реализация в Javascript , очень в стиле Lucene. Хотя мне интересно, стоит ли это только 1000 элементов, но, думаю, это также зависит от того, как долго каждый элемент.

0 голосов
/ 28 февраля 2011

Этот делает это для вас?

<script>
var str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut erat vitae nulla dignissim sodales. Duis mattis, massa ac adipiscing lacinia, massa velit suscipit turpis, ut eleifend risus nisl sed dui. Suspendisse vitae malesuada purus. Vestibulum at pharetra justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sit amet risus augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed luctus, tellus vehicula sollicitudin tempus, quam dolor scelerisque dolor, ac blandit libero nisi quis metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer id elit nunc. Quisque tincidunt tempor ipsum, quis porta metus mollis at. Aenean id sem sit amet est vestibulum feugiat. \
Duis rutrum, ligula id dapibus molestie, velit tellus interdum erat, id fringilla mi metus vel neque. Pellentesque dolor arcu, imperdiet vel sodales vitae, egestas ut ligula. Curabitur sapien erat, congue a lacinia sed, accumsan id ipsum. Praesent sit amet tellus neque, id placerat lacus. Etiam nec tortor tortor, nec facilisis nulla. Aenean dui metus, rutrum a fringilla eget, porta ut nisi. Vestibulum volutpat tempor nibh, nec porta risus molestie eu. In metus ipsum, ultricies at posuere ac, tristique sit amet lorem. Sed et quam augue. Aenean eget vestibulum erat. Sed neque orci, luctus a sollicitudin at, rhoncus nec neque. Sed blandit, metus non pharetra semper, nulla ante suscipit orci, nec ultricies erat ipsum vel risus. Pellentesque a neque est.";
var partial = "sed"
var regExp = new RegExp("("+partial+")","gi");
document.write(str.replace(regExp,'<span style="color:red">$1</span>'));
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...