When your JSON documents did not reach your Opensolr Index, the reason is always written down: in the answer to your request, or in the job, document by document. Find it, fix the documents, and send them again.
Refused at once, or failed in the queue
- Refused at once. The answer to your request has
"status": falseandmsgsays why: too many documents, a missing field, your plan's disk or bandwidth used up. Nothing was queued. Every answer of this kind: Limits and refusals. - Failed in the queue. The request was accepted and got a
job_id, but some or all of its documents could not be written. The job is Failed (every document failed) or Completed with documents in error (partially failed), and it says why for each document.
See why a job failed
- Open the Account menu > Data Ingestion.
- On the row of your index, click the failed or partially failed counter: only those jobs are listed.
- Click the Job ID. The Error box gives every reason with how many documents it hit. For a job where every document failed, the Result also marks each document with its own reason.
- For an error Solr gave while writing, click Check Solr Error Log: it opens the Error Log of your index (Error Log).
The same through the API: ingest_status with your job_id gives the state and the error, ingest_queue_job_detail gives the documents you sent and the result (ingest_queue_job_detail). Jobs are kept 30 days.
The common reasons
unknown field 'director'(in anHTTP 400 Bad Requestfrom Solr)
The document has a field your index does not know. Give your own fields a name ending with a type suffix of the schema, such asdirector_sfor a value you filter on oryear_ifor a number, or leave the field out (Document fields).rtf extraction: ...orThe file could not be read: ...
With"rtf": true, the file at the document'suricould not be downloaded or read: a wrong address, a site that refused the download, a file over your plan's document size. Open the address in a browser, fix it, and send the document again (Files and documents).rtf:true requires a valid uriorrtf: only http/https URLs allowed
A document sent with"rtf": trueneeds a fullhttp://orhttps://address inuri.The file is still being read (file_extract job ...)
You sent a file withfile_extractand pushed the document before its reading was done. Wait for the statedoneof that job, then send the document again.No file_extract job ... for this account
Thefilevalue is not a job id thatfile_extractgave to your account. Send the file withfile_extractfirst and use the id it answers.Not an object
An item of yourdocumentslist is not a JSON object (a string, a number, a list). Every document is one{ ... }with its fields.
These are not failures: a file with no text in it (an empty or unsupported file) is written with an empty text, and a job that waits for meaning vectors goes back to Pending with a note, then carries on where it stopped.
Fix it and send it again
- In the queue: open the job, change the documents under Payload (Documents Sent), click Save Payload, then Retry (The Data Ingestion queue).
- All at once: once the cause is fixed on your side (a field added, a site that lets the file be downloaded), Retry Failed Jobs and Retry Partially Failed put every such job of the index back in the queue.
- From your code: send the fixed documents again. The same
urireplaces the same document, so nothing is duplicated (Update and remove documents).