Cómo hacer mi propio buscador

Use API de terceros

En lugar de construir su propio índice, use fuentes externas.

Así es como se construye Duckduckgo: Fuentes

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

Gracias a los proyectos de código abierto, crear su propio motor de búsqueda es muy fácil. Le sugiero que instale ElasticSearch como back-end y use el sitio oficial de Microsoft ASP.NET como front-end. Así es como llegó mi nuevo motor de búsqueda Thumboy.

ElasticSearch tiene una forma flexible de crear y editar índices. Es fácil escalar de 1 servidor a muchos servidores. Escribir una consulta de búsqueda para ElasticSearch es muy fácil y poderoso. Puede usar fácilmente el filtro para crear un subconjunto de resultados de búsqueda.

El sitio oficial de Microsoft ASP.NET proporciona medios poderosos para que pueda hacer que el motor de búsqueda sea front-end gracias a las bibliotecas JSON incluidas, TikaOnDotNet listo para extraer texto de páginas web o archivos de Internet.

La pregunta más importante que debe hacer es “¿Cómo gana mi motor de búsqueda los usuarios?” o “¿Por qué los usuarios buscarán en mi motor de búsqueda en lugar de Google o Bing?”.

Algunos puntos de partida:

La anatomía de un motor de búsqueda web hipertextual a gran escala:
http://infolab.stanford.edu/~bac

Introducción al retiro de información:
http://nlp.stanford.edu/IR-book/

Lucene: http://lucene.apache.org/java/do

Xapian: http://xapian.org/

Debe tener conocimientos técnicos sobre varios idiomas de la industria que se utilizan en el algoritmo del motor de búsqueda.

No soy un experto en la creación de motores de búsqueda, pero sí, algunos de los motores de búsqueda, incluido Google, usan el lenguaje Python. Consulte la lista de software Python

Comience con el proyecto de motor de búsqueda de código abierto Apache Nutch. http://en.wikipedia.org/wiki/Nutch

Nutch incluye rastreadores web, complementos para análisis, indexación y consulta. Puede refinar y construir según sus necesidades
http://nutch.apache.org/

Ir a Introducción a Informática | Udacity

esta es una de las mejores opciones para aprender a crear un motor de búsqueda