Nel sito Web di Tika si dice (relativo a tika-app-1.2.jar) che può essere utilizzato in modalità server. Qualcuno sa come inviare documenti e ricevere il testo analizzato da questo server una volta eseguito?Come utilizzare Tika in modalità server
risposta
Tika supporta due modalità "server". Il più semplice e originale è la bandiera --server
di Tika-App. Il più funzionale, ma anche più recente è il JAX-RS JSR-311 server component, che è un vaso aggiuntivo.
Il server di rete Tika-App è molto semplice da utilizzare. Basta avviare Tika-App con il flag --server
e un flag --port ###
dicendogli quale porta ascoltare. Quindi, connettersi a quella porta e inviarlo un singolo file. Tornerai alla versione html. Netcat funziona bene per questo, qualcosa di simile a java -jar tika-app.jar --server --port 12345
seguito da nc 127.0.0.1 12345 < MyFileToExtract
otterrà indietro l'html
Il JAX-RS JSR-311 server component supporta alcuni indirizzi diversi, per cose come metadati, testo, ecc Si avvia il server con java -jar tika-server.jar
, poi fare HTTP put chiama l'url appropriato con il tuo documento di input e recupererai la risorsa. Ci sono un sacco di dettagli ed esempi (incluso l'uso di curl per i test) su wiki page
Il server di rete Tika App è abbastanza semplice, supporta solo una modalità (estrai in HTML) ed è generalmente utilizzato per test/demo/prototipazione/ecc. Il Tika JAXRS Server è un servizio completamente RESTful che parla con HTTP ed espone una vasta gamma di modalità di Tika. In questi giorni è il modo generalmente consigliato per interfacciarsi con Tika attraverso la rete e/o da stack non Java.
Per migliorare Gagravarr risposta perfetta:
- Se il documento è ottenuto da un server WEB => ricciolo -u "http: // myserver -dominio/* path-to-doc */doc-name.extension "| nc 127.0.0.1 12345
- Ed è ancora meglio se il documento è protetto da password => ricciolo -u login: * password * "http: // myserver -dominio/* path-to -doc */doc-name.extension "| nc 127.0.0.1 12345
Solo aggiungendo all'eccellente risposta di @Gagravarr.
Quando si parla di Tika in modalità server, è importante distinguere tra due versioni che possono altrimenti causare confusione:
- tika-app.jar ha la --server --port 9998 opzioni per avviare un semplice server
- tika-server.jar è un componente separato utilizzando JAX-RS
la prima opzione prevede solo l'estrazione del testo e restituisce il contenuto come HTML. Molto probabilmente, quello che vuoi veramente è la seconda opzione, che è un servizio RESTful che espone molte più funzionalità di Tika.
È possibile semplicemente download the tika-server.jar dal sito del progetto Tika.Avviare il server utilizzando
java -jar tika-server-x.x.jar -h 0.0.0.0
L'opzione -h 0.0.0.0 (host) rende il server di ascolto per eventuali richieste in entrata, altrimenti senza di essa sarebbe solo ascolto per le richieste provenienti da localhost. È inoltre possibile aggiungere l'opzione -p per modificare la porta, altrimenti imposta il valore predefinito su 9998.
Quindi, una volta avviato il server, è sufficiente accedervi tramite il browser. Elencherà tutti gli endpoint disponibili.
Infine per estrarre i metadati da un file si può usare cURL come questo:
curl -T testWORD.doc http://example.com:9998/meta
restituisce i metadati come coppie chiave/valore uno per riga. Si può anche avere Tika restituire i risultati come JSON aggiungendo l'intestazione accept corretta:
curl -H "Accept: application/json" -T testWORD.doc http://example.com:9998/meta
[Aggiornamento 2015/01/19] In precedenza il commento ha detto che tika-server.jar non è disponibile come download. Risolto il problema dal momento che in realtà esiste come download binario.
Il server Tika è stato costruito e distribuito come standard per qualche tempo! Puoi trovarlo sul tuo mirror Apache più vicino o seguire il link dalla [pagina di download] (http://tika.apache.org/download.html) – Gagravarr
Deve esserci perso, grazie per averlo indicato! –
Suggerisco di modificare la risposta per indirizzare le persone a scaricare i barattivi tika-server e tika-server dai mirror, piuttosto che tika-src, poiché sarà molto più veloce e più facile per loro! – Gagravarr
Questa risposta mi ha aiutato molto. E infatti, il server non restituisce solo HTML. Ad esempio, utilizzando altre opzioni come "-j", il server restituisce invece i metadati JSON. – Marian
Puoi invece usare l'arricciatura. 'curl -s http: // localhost: 9998/tika --header" Accetta: text/plain "-T filename.xls' –