Оптимизация производительность Lucene

Это не прямой ответ, а немного другое направление проектирования:

Не отправляйте данные в виде формы, но поскольку объект JSON должен быть непосредственно сопоставлен с серверным объектом, или использовать переменную пути пути REST

Теперь я не знаю, что ни один из вариантов не подходит для вашего случая, поскольку вы пытаетесь передать ключ XSRF. Отображение его в переменной пути, как это, является ужасным дизайном:

http://www.someexample.com/xsrf/{xsrfKey}

Поскольку по своей природе вы хотели бы передать ключ xsrf другому пути, /login, /book-appointment и т. Д., И вы не 't хотите испортить ваш симпатичный URL

Интересно добавить его как поле объекта тоже не подходит, потому что теперь на каждом из json-объектов вы переходите на сервер, вы должны добавить поле

{
  appointmentId : 23,
  name : 'Joe Citizen',
  xsrf : '...'
}

Вы, конечно, не хотите добавлять другое поле в свой серверный класс, который не имеет прямой семантической связи с объектом домена.

На мой взгляд, лучший способ передать ваш Ключ xsrf через HTTP-заголовок. Это поддерживает многостраничная веб-библиотека защиты xsrf. Например, в Java Spring вы можете передать его с помощью заголовка X-CSRF-TOKEN .

Отличная способность Angular связывать объект JS с объектом пользовательского интерфейса означает, что мы можем избавиться от практики публикации сформировать все вместе и вместо этого разместить JSON. JSON можно легко де-сериализовать на серверный объект и поддерживать сложные структуры данных, такие как карта, массивы, вложенные объекты и т. Д.

Как вы размещаете массив в форме полезной нагрузки? Может быть, так:

shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday

или это:

shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday

Оба плохой дизайн ..

24
задан mmcdole 21 March 2009 в 07:19
поделиться

4 ответа

Быстрые подсказки:

  • Сохраняют размер индекса небольшим. Устраните нормы, Вектора терминов при отсутствии необходимости. Флаг Store набора для поля, только если это необходимость.
  • Очевидная, но часто повторенная ошибка. Создайте только один экземпляр Искателя и повторного использования.
  • Сохраняют в индексе на быстрых дисках. RAM, если Вы параноики.
12
ответ дан Shashikant Kore 28 November 2019 в 23:34
поделиться

Обман. Используйте RAMDirectory для загрузки всего индекса в поршень. Впоследствии, все сверкает быстро.:)

4
ответ дан Emil H 28 November 2019 в 23:34
поделиться

Я нашел, что лучший ответ на вопрос о производительности должен представить его. Инструкции являются большими, но существует столько переменных, которые могут повлиять на производительность, такую как размер Вашего набора данных, типы запросов, которые Вы делаете, типы данных, и т.д.

Получают профилировщик Netbeans или что-то подобное и пробуют его различные пути. Используйте статьи, связанные с Mitch, но удостоверьтесь, что Вы на самом деле тестируете то, что помогает и что (часто удивительно) причиняет боль.

существует также хороший шанс, что любые различия в производительности, которые можно получить от Lucene, будут незначительны по сравнению с повышениями производительности в Ваш код. Профилировщик укажет на это также.

3
ответ дан Nathan Voxland 28 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: