Lucene как хранилище данных - PullRequest
       15

Lucene как хранилище данных

15 голосов
/ 27 сентября 2010

Можно ли использовать Lucene в качестве полноценного хранилища данных (как и другие варианты (mongo, couch) nosql).

Я знаю, что есть некоторые ограничения, например, что недавно обновленные документы одним индексатором не будут отображаться в другом индексаторе. Поэтому нам нужно перезапустить индексатор, чтобы получить обновления.

Но в последнее время я сталкиваюсь с solr . Похоже, что этих проблем удается избежать с помощью некоторой репликации снимков.

Так что я подумал, что мог бы использовать lucene в качестве хранилища данных, поскольку здесь также используются документы такого же типа (на основе JSON), которые используются mongo и couch для управления документами, а проверенный алгоритм индексации извлекает записи очень быстро.

Но мне любопытно, кто-нибудь пробовал это раньше? если нет, то какие причины не выбирают этот подход.

Ответы [ 3 ]

15 голосов
/ 27 сентября 2010

Существует также проблема долговечности.Хотя индекс Lucene никогда не должен быть поврежден, я видел, как это произошло.А подход Lucene к восстановлению поврежденного индекса заключается в том, чтобы «выбросить его и восстановить из исходных данных».Что имеет смысл для инструмента индексирования.Но это требует, чтобы вы хранили данные в другом месте.

4 голосов
/ 27 сентября 2010

Я работал только с Solr, производным Lucene (и я бы порекомендовал использовать Solr практически всем), поэтому мое мнение может быть немного предвзятым, но можно использовать Solr как хранилище данных, да, однако это не не очень полезно без чего-то более постоянного в фоновом режиме.

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

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

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

TL; DR: Да, но я бы не рекомендовал это.

3 голосов
/ 27 сентября 2010

Хранитель использует Solr в качестве хранилища данных . Некоторые из их причин вы можете увидеть в этом слайд-шоу.

В любом случае, я думаю, что их веб-сайт очень сильно перехвачен (безусловно, больше, чем все, над чем я работаю), поэтому я думаю, что мне было бы удобно сказать, что Solr, вероятно, будет работать для вас., Поскольку он масштабируется в соответствии с их требованиями.

...