Използвам Solr успешно вече почти 2 години и никога не съм използвал Sphinx, така че очевидно съм предубеден. Все пак ще се опитам да го запазя обективен, като цитирам документите или други хора. Ще взема и корекции към моя отговор :-)
Прилики:
- И Solr, и Sphinx удовлетворяват всички ваши изисквания. Те са бързи и проектирани да индексират и търсят ефективно големи масиви от данни.
- И двата имат дълъг списък от сайтове с висок трафик, които ги използват (Solr , Sphinx )
- И двете предлагат търговска поддръжка. (Solr , Sphinx )
- И двете предлагат обвързване на клиентски API за няколко платформи/езици (Sphinx , Solr )
- И двете могат да се разпространяват за увеличаване на скоростта и капацитета (Sphinx , Solr )
Ето някои разлики:
- Solr, тъй като е проект на Apache, очевидно е лицензиран за Apache2. Sphinx е GPLv2 . Това означава, че ако някога се наложи да вградите или разширите (не просто да „използвате“) Sphinx в търговско приложение, ще трябва да закупите търговски лиценз (rational )
- Solr е лесно вграждане в Java приложения.
- Solr е изграден върху Lucene, което е доказана технология над 8 години с огромен потребителска база (това е само малка част). Всеки път, когато Lucene получи нова функция или ускорение, Solr също я получава. Много от разработчиците, които се ангажират със Solr, също са създатели на Lucene.
- Sphinx се интегрира по-тясно с RDBMS, особено MySQL.
- Solr може да бъде интегриран с Hadoop за създаване на разпределени приложения
- Solr може да бъде интегриран с Nutch за бързо изграждане на напълно- модерна уеб търсачка с робот .
- Solr може индексира собствени формати като Microsoft Word, PDF и др. . Sphinx не може .
- Solr идва с проверка на правописа от кутията .
- Solr идва с поддръжка на аспекти от кутията . Фасетирането в Sphinx отнема повече работа .
- Sphinx не позволява частични актуализации на индекса за данни от полета .
- В Sphinx, всички идентификатори на документи трябва да са уникални неподписани цели числа без знак числа . Solr дори не изисква уникален ключ за много операции , а уникалните ключове могат да бъдат или цели числа, или низове.
- Solr поддържа свиване на поле (понастоящем само като допълнителен пластир), за да избегнете дублиране на подобни резултати. Изглежда, че Sphinx не предоставя никаква функция като тази.
- Докато Sphinx е проектиран само да извлича идентификатори на документи , в Solr можете директно да получите цели документи с почти всякакъв вид данни, което го прави по-независим от всяко външно хранилище за данни и спестява допълнителното пътуване.
- Solr, освен когато се използва като вграден, работи в Уеб контейнер на Java
като Tomcat или Jetty, които изискват допълнителна специфична конфигурация и настройка
(или можете да използвате включения Jetty
и просто го стартирайте с
java -jar start.jar
). Sphinx няма допълнителна конфигурация.
Свързани въпроси:
- Търсене на пълен текст с Rails
- Сравнение на пълнотекстова търсачка - Lucene, Sphinx, Postgresql, MySQL?