# Nutch

Nutch és un programari de motor de cerca construït sota la filosofia de codi obert, altament extensible i escalable.

## Característiques

Fa servir Lucene per la indexació i cerca de pàgines web. L'indexador ("robot" o "web crawler"), en canvi, fou escrit des de zero només per aquest projecte. Està escrit en codi Java però les dades estan emmagatzemades en formats independents del llenguatge.
Nutch disposa d'una arquitectura altament modular que permet als desenvolupadors crear plugins per: lectura d'arxius no text, recuperació de dades, consultes i clustering.
Per satisfer la necessitat de processar amb diferents màquines en les tasques d'indexació, el projecte nutch ha implementat també el MapReduce i un sistema de fitxers distribuït. Ambdós entorns han desembocat en un nou subprojecte anomenat Hadoop.

## Història

Al juny del 2003, es va assolir l'èxit d'una demo que havia indexat cent milions de planes d'internet.
El juny del 2005, Nutch fou certificat per l'Apache Incubator, i així es convertí en un subprojecte de Lucene.
Des del 2010 és considerat un projecte independent de primer nivell de l'Apache Foundation.
Al febrer de 2014 el projecte Common Crawl va adoptar Nutch per ser obert i altament escalable.
Va arribar a ser part de l'objectiu de ser un motor de cerca global però va acabar quedant descartat.

### Historial d'edicions

| 1.x Branca | 2.x Branca | Data de publicació | Descripció |
| 1.1 | | 2010-06-06 | Inclou millores importants de llibreries ja existents (Hadoop, Solr, Tika, etc.) de les que Nutch en depèn. També incloïa resolució d'errors i millores de velocitat. |
| 1.2 | | 2010-10-24 | Noves funcionalitats (com ara informació de temps a totes les classes i implementació de timeouts). Resolució d'errors (important el NPE, referència a un objecte nul, en cerca distribuïda), problemes al formatat d'XML en camps de Document. |
| 1.3 | | 2011-06-07 | Capacitat d'indexar RSS, millor integració amb Apache Tika, millora en la identificació de llengües i reducció a 2 MB de les fonts. |
| 1.4 | | 2011-11-26 | Indexació a múltiples tipus MIME, cua i profunditats d'indexació configurables, millores de velocitat en la indexació, millor integració amb Tika i suport a autorització HTTP en indexació Solr. |
| 1.5 | | 2012-06-07 | Actualització de components principals com ara Tika a 1.1 o Hadoop a 1.0.0. Elements LinkRank, WebGraph, plug-ins cobrint llistes negres, filtratge i lectura millorats. |
| | 2.0 | 2012-07-07 | Edició centrada en indexació de gran escala que construeix una abstracció d'emmagatzematga (via Apache Gora) per centres big data com Apache Accumulo, Apache Avro, Apache Cassandra, Apache HBase, HDFS, un centre d'emmagatzematge de dades i d'altres centres SQL d'alt perfil. |
| 1.5.1 | | 2012-07-10 | Edició de manteniment de la popular versió 1.5.X de Nutch que ha estat amplament adoptada arreu de la comunitat. |
| | 2.1 | 2012-10-05 | Continua proveint als usuaris Nutch una distribució simplificada del desenvolupament 2.x, que creix entre la comunitat. Resol uns 20 errors i ofereix propietats per millorar la configuració de Solr. Actualitza algunes dependències de Gora i introdueix l'opció de construir índexos amb Elastic Search. |
| 1.6 | | 2012-12-06 | Sobre 20 errors resolts, noves functionalitats incloent un nou HostNormalizer, la capacitat de dinàmicament configurar fetchInterval per MIME-type i expansions funcionals a l'API d'indexació incloent la normalització d'URLs i l'eliminació de document marcats com noIndex a robots. Actualització a Tika 1.2 i Automaton 1.11-8. |
| | 2.2 | 2013-06-08 | Sobre 30 errors resolts i 25 millores, representant la tercera edició de la cada cop més popular sèrie 2.x Nutch. Inclou Crawler-Commons que ara Nutch usa per una lectura millorada de robots.txt. Actualització a Apache Hadoop 1.1.1, Apache Gora 0.3, Apache Tika 1.2 i Automaton 1.11-8. |
| 1.7 | | 2013-06-24 | Sobre 20 errors resolts i moltes millores; la funcionalitat més notable és una arquitectura d'indexació connectable que ara ja suporta Apache Solr i Elastic Search. Fent ombra a la recent edició Nutch 2.2, ara delega la lectura de robots.txt a Crawler-Commons. Actualitzacions clau de llibreries a Apache Hadoop 1.2.0 i Apache Tika 1.3. |
| | 2.2.1 | 2013-07-02 | Actualitzacions de llibreries a Apache Hadoop 1.2.0 i Apache Tika 1.3. Principalment resol un error per NUTCH-1591 - Conversió incorrecta de ByteBuffer a String. |
| 1.8 | | 2014-03-17 | Actualitzazions a Crawler Commons 0.3 i Apache Tika 1.5. Sobre 30 errors resolts i 18 millores. |
| | 2.3 | 2015-01-22 | Nutch 2.3 ofereix ara una aplicació Web basada en Apache Wicket autocontinguda. El backend SQL per Gora queda descontinuat. |
| 1.10 | | 2015-05-06 | Actualitzacions de llibreries a Tika 1.6, també proveeix sobre 46 errors resolts, 37 millores i 12 noves funcionalitats. |
| 1.11 | | 2015-12-07 | Actualitzacions de llibreries a Hadoop 2.X, Tika 1.11 també proveeix sobre 32 errors resolts, 35 millores i 14 noves funcionalitats. |
| | 2.3.1 | 2016-01-21 | Resol 40 errors informats. |
| 1.12 | | 2016-06-18 | |
| 1.13 | | 2017-04-02 | |
| 1.14 | | 2017-12-23 | |
| 1.15 | | 2018-08-09 | |
| 1.16 | | 2019-10-11 | |
| | 2.4 | 2019-10-11 | Considerada la darrera edició de la sèrie 2.X. |
| 1.17 | | 2020-07-02 | |
| 1.18 | | 2021-01-24 | |
| 1.19 | | 2022-08-22 | |

## Escalabilitat

IBM Research va estudiar el rendiment
de Nutch/Lucene com a part del seu projecte Commercial Scale Out (CSO) project
. Les seves conclusions van ser que Nutch/Lucene podia assolir un nivell de rendiment sobre un cluster de blades que no era abastable per un ordinador escalable, com podia ser el Power5.

## Branques

La branca de treball és la 1.x, creada el 06/06/2010, però també fou creada la 2.x, més ambiciosa en termes d'escalabilitat i rendiment. Des del 11/10/2019 que ja no es fan desenvolupaments sobre la 2.x (versió 2.4).

## Projectes relacionats

Hadoop

## Motors de cerca construïts amb Nutch

* mozDex
* Krugle
* Wikiasari

## Referències

* ↑ «juny 2005: Nutch graduates from Incubator» (en anglès). Apache Nutch, 01-06-2005. [Consulta: 3 octubre 2022].
* ↑ «21 abril 2010 - Apache Nutch graduates to TLP» (en anglès). Apache Nutch, 21-04-2010. [Consulta: 3 octubre 2022].
* ↑ «Nutch 2.3 Release». The Apache Software Foundation, 22-01-2015. [Consulta: 9 octubre 2022].
* ↑ «Nutch 1.10 Release Notes». The Apache Software Foundation, 06-05-2015. [Consulta: 9 octubre 2022].
* ↑ «Nutch 1.11 Release Notes». The Apache Software Foundation, 07-12-2015. [Consulta: 9 octubre 2022].
* ↑ «Nutch 2.4 Release». The Apache Software Foundation. [Consulta: 9 octubre 2022].
* ↑ Escalabilitat del motor de cerca Nutch (anglès)
* ↑ Sistema operatiu de base per aprovisionar i portar un Superordinador Comercial Arxivat 2008-12-03 a Wayback Machine. (anglès)

## Enllaços externs

* Pàgina oficial de Nutch
* Pàgina oficial sobre Lucene
* Pàgina oficial de Hadoop