Tengo una big database , aproximadamente, tiene 5 lakh (500K) entradas, ahora todas esas entradas también tienen algún documento asociado (es decir, cada identificación tiene al menos un archivo pdf). Ahora necesito un método robusto para buscar un text en particular en esos archivos pdf y si lo encuentro, debería devolver la 'id' respectiva
amablemente comparta algunas formas rápidas y optimizadas de search text in a pdf using PHP . Cualquier idea será apreciada.
nota: cambiar el pdf a texto y luego buscar no es lo que estoy buscando, obviamente, llevará más tiempo.
En una línea, necesito la mejor manera de buscar texto en pdf usando PHP
Si se trata de una tarea única, probablemente no haya una solución 'rápida'.
Si esta es una tarea recurrente,
FULLTEXT a esa tabla.Ahora la búsqueda será rápida.
Yo mismo escribí un sitio web en ReactJS para buscar información en archivos PDF (libros indexados), que indexé usando el motor de búsqueda Apache SOLR.
Lo que hice en React es, en esencia:
queryValue = "(" + queryValueTerms.join(" OR ") + ")" let query = "http://localhost:8983/solr/richText/select?q=" let queryElements = [] if(searchValue){ queryElements.push("text:" + queryValue) } ... fetch(query) .then(res => res.json()) .then((result) =>{ setSearchResults(prepareResults(result.response.docs, result.highlighting)) setTotal(result.response.numFound) setHasContent(result.response.numFound > 0) })Lo que resulta en una llamada HTTP:
http://localhost:8983/solr/richText/select?q=text:(chocolate%20OR%20cake)Dado que esto es ReactJS y solo partes del código, tiene poco valor para usted en términos de PHP, pero solo quería demostrar cuál era el enfoque. Supongo que estarías usando Curl o lo que sea.
La indexación en sí la hice en un servicio separado, usando SolrJ, es decir, escribí un programa Java bastante pequeño que utiliza la propia biblioteca SolrJ de SOLR para agregar archivos PDF al índice SOLR.
Si opta por indexar usando Java y SolrJ (fue la opción más fácil para mí, y no usé Java en años anteriores), aquí hay algunos recursos y ejemplos útiles, que recopilé después de una búsqueda exhaustiva para mis propios fines:
https://solr.apache.org/guide/8_5/using-solrj.html#using-solrj
Básicamente copié lo que hay aquí: https://lucidworks.com/post/indexing-with-solrj/ y lo modifiqué para mis necesidades.
Consejo: Como estaba muy oxidado con Java, en lugar de establecer classpaths, etc., la solución rápida para mí fue simplemente copiar TODAS las bibliotecas de la carpeta solrj de SOLR a mi proyecto Java. Y posiblemente algunas otras bibliotecas. Puede ser feo, pero hizo el trabajo por mí.