2012-04-18 6 views
7

У меня есть более 100 CSV-файлов, которые содержат 10000 строк, которые я индексирую. И тогда запрос на орфографию похож на орфографию. При этом индексирование происходит очень медленно.Solr slow while Indexing

Я нашел несколько хороших решений

  1. Подчиненных где мастер индекс и ведомый используются для запроса. How to index records in Solr faster (and not impact ColdFusion web server)? Two JVM?

  2. Использование Tri-диапазона http://www.lucidimagination.com/blog/2009/05/13/exploring-lucene-and-solrs-trierange-capabilities/

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

Заранее благодарен

+0

Вы можете точно описать то, что вы делаете сейчас? Как вы индексируете и как выполняете запросы? – jpountz

ответ

8

Индексирование обычно делает запросы медленными. Если у вас быстрые диски, индексирование будет использовать 100% CPU, в противном случае он будет использовать 100% пропускной способности диска. В любом случае, запросы будут медленными.

Для этого стандартное решение является конфигурацией ведущий/ведомый. Ведомые серверы предназначены для поисковых запросов. Единственный раз, когда они замедляются, - это после репликации, когда создаются новые поисковые машины с новыми кешами.

Конфигурация мастера/подчиненного устройства может не делать индексацию намного быстрее, но это позволит избежать медленной производительности запроса. Там были работы по индексированию многопоточности, поэтому вы можете попробовать сразу несколько задач индексирования. Это не поможет, если узким местом является диск IO, только если он использует 100% одного процессора.

Trie поля отлично подходят для запросов диапазона. Я сомневаюсь, что они будут сильно влиять на скорость индексирования.

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

+0

Отличный ответ! Просто чтобы понять это, потому что речь идет о двух JVM. Вам нужны две разные машины. – fulmicoton