Ситуации, чтобы предпочесть Apache Lucene, а не Solr? - PullRequest
18 голосов
/ 18 мая 2010

Существует несколько преимуществ использования Solr 1.4 (встроенный поиск фасетов, группировка, репликация, администрирование http по сравнению с luke, ...).

Даже если бы я встроил функцию поиска в свое Java-приложение, я мог бы использовать SolrJ , чтобы избежать компромисса HTTP при использовании Solr. SolrJ рекомендуется вообще?

Итак, когда бы вы порекомендовали использовать «чистый люцен»? Это имеет лучшую производительность или требует меньше оперативной памяти? Это лучше модульно-тестируемый?

PS: мне известен этот вопрос .

Ответы [ 5 ]

6 голосов
/ 18 мая 2010

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

4 голосов
/ 18 мая 2010

Если вы хотите полностью встроить свою функцию поиска в свое приложение и не хотите поддерживать отдельный процесс, такой как Solr, вероятно, предпочтительнее использовать Lucene. Например, настольному приложению могут потребоваться некоторые функции поиска (например, Eclipse IDE, которая использует Lucene для поиска в своей документации). Возможно, вы не хотите, чтобы приложения такого типа запускали тяжелый процесс, такой как Solr.

2 голосов
/ 24 мая 2010

Я удивлен, что никто не упомянул NRT - поиск в режиме реального времени, доступен с Lucene, но не с Solr (пока).

2 голосов
/ 18 мая 2010

Вот одна ситуация, когда я должен использовать Lucene.

Учитывая комплект документов, выясните наиболее распространенные в них термины.

Здесь мне нужно получить доступ к векторам терминов каждого документа (используя низкоуровневые API TermVectorMapper). С Lucene это довольно просто.

Другой вариант использования - для очень специализированного упорядочивания результатов поиска. Например, я хочу, чтобы поиск по имени автора (который написал несколько книг) приводил к одной книге из каждого магазина в первых 10 результатах. В этом случае я найду результаты по каждому книжному магазину и, чтобы показать окончательные результаты, я выберу один результат из каждого книжного магазина. Здесь вы, по сути, делаете несколько поисков, чтобы получить окончательные результаты. Доступ к низкоуровневым API lucene определенно помогает.

Еще одна причина пойти на Lucene была в том, чтобы получить новые вкусности как можно скорее. Это больше не соответствует действительности, поскольку оба они были объединены, и будут синхронные выпуски.

0 голосов
/ 28 апреля 2014

Используйте Solr, если вас больше заботит масштабируемость, чем производительность, и используйте Lucene, если вас больше заботит производительность, чем масштабируемость.

...