Используя JavaScript я должен эффективно удалить ~10000 ключевых слов из ~100000 документов слова, которых ~1000 будут ключевые слова. Какой подход Вы предложили бы?
Значительное регулярное выражение было бы практично? Или я должен просто выполнить итерации через символы документа, ища (скучные) ключевые слова?
Править:
Положительная сторона - только целые слова, не части. И некоторые ключевые слова содержат пробелы.
Я пытаюсь сделать все это сторона клиента для снижения давления на бэкенде.
Я не использовал таблицы jQuery, но я предполагаю, что если задать «width: 80%;» и определить ширину для «td», текстовое поле должно наследовать свои размеры от своего родителя («td»).
Если это не сработает или вам нужен другой подход, вы можете попробовать:
td > input[type="text"] {width: 5em;} /* or whatever */
-121--3448200- С использованием по крайней мере ZF и Symfony для приложений уровня предприятия, скорее всего, они будут работать с HipHop. Если не сейчас, то рано или поздно. Однако вопрос заключается не столько в том, могут ли они работать с этими рамками, сколько в том, как выглядит ваша поддерживающая ИТ-архитектура.
HipHop предназначен для масштабирования больших многосерверных сайтов с высоким трафиком, таких как Facebook. В вашем обычном веб- приложении вы, скорее всего, не получите преимущества от этого. Просто продолжайте использовать memcache и APC.
См. следующие статьи:
Использование регулярного выражения может быть хорошим вариантом:
var words = ['bon', 'mad'];
'joe bon joe mad'.replace(new RegExp('(' + words.join('|') + ')', 'g'), '');
// 'joe joe '
regex 1 не очень сложен с такими вещами, как взгляд вперед, и механизм regexp написан на C/C + +, так что вы можете Тем не менее, проведите тестирование и проверьте, соответствует ли производительность вашим потребностям.
Я не думаю, что внедрение собственного синтаксического анализатора будет быстрее, но я могу ошибаться - сравнительный тест.
Отправка документа на сервер звучит не очень хорошо для меня. С помощью 100 000 слов вы смотрите на полезную нагрузку в диапазоне мегабайт, и вам все равно придется что-то сделать с ней на сервере и оттолкнуть ее назад.
1 Возможно, вам придется настроить regexp, чтобы сделать что-то с местами.
Мой инстинкт подсказывает мне, что для такого большого количества ключевых слов - сортировка ключевых слов и создание посимвольного конечного автомата будет намного быстрее, чем регулярное выражение, поскольку конечный автомат тривиален, его можно сгенерировать автоматически.
Конечный автомат, кажется, часто используется для аналогичных задач, например http://www.codeproject.com/KB/string/civstringset.aspx