Наш поиск Lucene в нашей местности является непристойно медленным и полностью непригодным для использования - 30 секунд или более для поиска термина «собака» в ~ 6000 записей.Поиск Lucene неприлично медленный
Я совершенно не знаком с поиском и индексированием Lucene.
Я понимаю, что есть много способов оптимизировать что-то.
Я запустил профайлер и вставляю результаты здесь.
Здесь индекс кода контроллера, который съедает большую часть времени:
JO_Search_Lucene_Search_QueryParser::setDefaultEncoding('UTF-8');
$hits = $index->find($query);
foreach ($hits as $hit) {
$ids[] = $hit->item_id;
}
$index->find($query)
идет 4 реализаций. Я могу вставить эти несколько более длинные функции, если полезно, но только вставил закомментированные описания здесь в качестве стартера:
первых:
/**
* Performs a query against the index and returns an array
* of JO_Search_Lucene_Search_QueryHit objects.
* Input is a string or JO_Search_Lucene_Search_Query.
*
* @param mixed $query
* @return array JO_Search_Lucene_Search_QueryHit
* @throws JO_Search_Lucene_Exception
*/
второго:
/**
* Performs a query against the index and returns an array
* of JO_Search_Lucene_Search_QueryHit objects.
* Input is a string or JO_Search_Lucene_Search_Query.
*
* @param mixed $query
* @return array JO_Search_Lucene_Search_QueryHit
* @throws JO_Search_Lucene_Exception
*/
третий:
/**
* Performs a query against the index and returns an array
* of JO_Search_Lucene_Search_QueryHit objects.
* Input is a string or JO_Search_Lucene_Search_Query.
*
* @param mixed $query
* @return array JO_Search_Lucene_Search_QueryHit
* @throws JO_Search_Lucene_Exception
*/
четвертый:
/**
* Performs a query against the index and returns an array
* of JO_Search_Lucene_Search_QueryHit objects.
* Input is a string or JO_Search_Lucene_Search_Query.
*
* @param mixed $query
* @return array JO_Search_Lucene_Search_QueryHit
* @throws JO_Search_Lucene_Exception
*/
Ниже приведен снимок выполнения «время», «собственное время» и «звонки». Любые указания о том, где искать, оцениваются.
Никто не ответит, если вы не разместите какой-либо код. См. [Mcve] (http://stackoverflow.com/help/mcve). –
Спасибо @ltrzesniewski, я этого не знал. Я добавил код и комментарии, но есть так много кода, что я не хочу перегружать это. Если есть полезный конкретный код, я счастлив вставить больше. Tx. – ian
Ты не совсем понял, что я имел в виду. Попробуйте извлечь отдельный пример, который отображает поведение, которое вы испытываете. Мы не можем отлаживать комментарии в конце концов :) –