Use API de terceros
En lugar de construir su propio índice, use fuentes externas.
Así es como se construye Duckduckgo: Fuentes
- Google mató mi blog, ¿volverá eventualmente?
- Cómo mejorar un ranking de websie
- ¿Puedo clasificar un nuevo sitio para palabras clave de alta competencia?
- ¿Es la dirección IP el único o principal método utilizado para calcular el SEO local (más en desc)?
- ¿Cómo es importante la versión de caché 'solo texto' para el rastreador de Google?
Usar bibliotecas existentes
Para un motor de búsqueda de pequeña a mediana escala, recomendaría usar Apache Solr y Apache Nutch (ambos son de código abierto).
Solr : la interfaz del motor de búsqueda para la biblioteca de búsqueda de Apache Lucene
Nutch : el rastreador web de código abierto utilizado para indexar contenido web.
Elasticsearch – servidor de búsqueda basado en Lucene
Aquí puedes encontrar buenos tutoriales paso a paso:
Construyendo un motor de búsqueda con Nutch y Solr en 10 minutos – Building Blocks
Usando Nutch y Solr para rastrear e indexar la web – Hugh Lashbrooke
Hazlo tu mismo
Si desea desarrollar un motor de búsqueda usted mismo desde cero, eche un vistazo a
Estructura de datos de índice invertido.
Básicamente, para cada palabra o término, está creando una lista con las URL de los documentos que contienen la palabra. Las listas se pueden almacenar como archivos en el sistema de archivos o en una base de datos NoSQL para persistencia. El núcleo de la mayoría de las bases de datos NoSQL es un almacén de valores clave basado en una tabla Hash o Trie. Durante la indexación y la búsqueda, transforma el término de búsqueda en un hash. El hash sirve como clave, mientras que las listas invertidas son el valor. Esto permite un rendimiento de búsqueda cercano a O (1).
El índice invertido permite búsquedas booleanas al intersecar las listas de múltiples palabras clave.
Un enfoque alternativo es el modelo de espacio vectorial. Cada dimensión corresponde a un término separado. Si aparece un término en el documento, su valor en el vector no es cero. Las operaciones vectoriales se pueden usar para comparar documentos con consultas.
Bloques de construcción de un motor de búsqueda
Los siguientes componentes son bloques de construcción típicos de un motor de búsqueda:
tractor
- seleccionar documentos para indexar
- seleccione partes del documento que desea indexar
- actualizar regularmente el índice y las clasificaciones si los documentos han cambiado, se agregan o se eliminan
- seguir referencias a otros documentos
- lidiar con duplicados y canonización
analizador
- eliminar el marcado HTML y extraer texto
- romper el texto en palabras
- normalizar mayúsculas, guiones y diéresis
clasificación
- clasificar los documentos por relevancia, tiempo, etc.
procesamiento de consultas
- analizar la consulta en términos
- analizar la búsqueda de frases y operadores de búsqueda booleanos
- tratar con errores tipográficos
- crear sugerencias de consulta
- implementar búsqueda de subcadenas / búsqueda instantánea
buscar
- buscar documentos que coincidan con la consulta y filtros adicionales, relevancia ordenada
- diseñar las listas de resultados de búsqueda
índice
- almacenar los documentos en una estructura de datos que permite búsquedas escalables, rápidas y booleanas
almacenamiento en caché
balanceo de carga
redundancia
analítica