Поскольку событие change
требует фактического события браузера, инициированного пользователем, а не посредством кода JavaScript.
Сделайте это вместо:
$("#single").val("Single2").trigger('change');
или
$("#single").val("Single2").change();
Я написал ужасный пост о том, как распараллелить индекс Lucene. Он действительно ужасно написан, но вы найдете его здесь (есть пример кода, который вы, возможно, захотите посмотреть).
Как бы то ни было, основная идея состоит в том, что вы разбиваете свои данные на большие части, а затем работайте над каждой из этих частей в отдельном потоке. Когда каждая из частей готова, вы объединяете их все в единый индекс.
С помощью подхода, описанного выше, я могу проиндексировать 4+ миллиона записей примерно за 1 день. 2 часа.
Надеюсь, это даст вам представление о том, куда идти дальше.
Помимо стороны записи (коэффициент слияния) и аспекта вычислений (распараллеливание) это иногда происходит по самой простой причине: медленный ввод. Многие люди создают индекс Lucene из базы данных данных. Иногда вы обнаруживаете, что конкретный запрос для этих данных слишком сложен и медлителен, чтобы на самом деле быстро вернуть все (2 миллиона?) Записей. Попробуйте просто запросить и записать на диск, если это еще порядка 5-9 часов, вы нашли место для оптимизации (SQL).
Следующая статья действительно помогла мне, когда мне нужно было ускорить работу:
http://wiki.apache.org/lucene-java/ImproveIndexingSpeed
Я обнаружил, что создание документа было нашим основным узким местом. После оптимизации доступа к данным и выполнения некоторых других рекомендаций я смог существенно повысить производительность индексации.
Самый простой способ улучшить производительность индексирования Lucene - это изменить значение переменной экземпляра mergeFactor IndexWriter. Это значение сообщает Lucene, сколько документов хранить в памяти перед записью их на диск, а также как часто нужно объединять несколько сегментов вместе.
http://search-lucene.blogspot.com/2008/08/indexing- speed-factor.html