SOLR performance tuning

Я прочитал следующее:

http://wiki.apache.org/solr/SolrPerformanceFactors

http://wiki.apache.org/solr/SolrCaching

http://www.lucidimagination.com/content/scaling-lucene-and-solr

И у меня есть вопросы по нескольким вещам:

  1. Если я использую опцию JVM -XX:+UseCompressedStrings, какой экономии памяти я могу достичь? Для простого примера, если у меня есть 1 индексированное поле (строка) и 1 хранимое поле (строка) с omitNorms=true и omitTf=true, какой экономии в индексе и кэше документов я могу ожидать? Я предполагаю около 50%, но, возможно, это слишком оптимистично.
  2. Когда именно работает кэш фильтров Solr? Если я просто делаю простой запрос с AND и несколькими OR, и сортирую по баллам, нужен ли он мне вообще?
  3. Если я хочу кэшировать все документы в кэше документов, как мне рассчитать необходимое пространство? Используя пример выше, если у меня 20M документов, я использую сжатые строки, и средняя длина хранимого поля составляет 25 символов, то требуемое пространство в основном (25 байт + small_admin_overhead) * 20M?
  4. Если все документы находятся в кэше документов, насколько важен кэш запросов?
  5. Если я хочу автоматически помещать каждый документ в кэш документов, будет ли это делать autowarm query of *:*?
  6. В статье scaling-lucene-and-solr говорится, что FuzzyQuery медленный. Если я использую функцию проверки орфографии в solr, то я, по сути, использую нечеткий запрос, правильно (потому что проверка орфографии делает тот же расчет расстояния редактирования)? Таким образом, предполагается, что проверка орфографии и нечеткий запрос одинаково "медленные"?
  7. Раздел, описывающий кэш полей lucene для строк, немного запутан. Правильно ли я понимаю, что требуемое пространство в основном равно размеру индексируемого поля строки + целое число arry, равное количеству уникальных терминов в этом поле?
  8. Наконец, в разделе "Максимизация пропускной способности" есть заявление о том, что нужно оставить достаточно места для дискового кэша ОС. Там говорится: "В целом, для крупномасштабного индекса лучше всего убедиться, что у вас есть хотя бы несколько гигабайт оперативной памяти сверх того, что вы отдаете JVM". Значит, если у меня машина с 12 ГБ памяти (как пример), я должен отдать ОС по крайней мере 2-3 ГБ? Могу ли я оценить объем дискового кэша, необходимый ОС, глядя на размер дискового индекса?

10
задан yura 23 August 2012 в 09:20
поделиться