Estoy tratando de crear una aplicación web en ASP.NET MVC y necesito crear una función de búsqueda bastante compleja. Cuando un usuario ingresa un término de búsqueda, quiero buscar en una variedad de fuentes de datos que incluyen documentos, tablas en la base de datos, URL de páginas web y algunas API como Facebook. Cualquier consejo, tutorial y consejos serían muy apreciados.Cómo construir un motor de búsqueda en C#
Respuesta
Su pregunta sugiere que probablemente no esté planeando implementar toda la característica desde cero, por lo que aquí hay algunos enlaces que pueden serle útiles.
Uno (el más fácil)
opción sería utilizar un motor de búsqueda de terceros (por ejemplo Google Custom Search, pero Bing probablemente tiene una API similar). Esto le permite buscar (solo) su página usando Google y mostrar los resultados de manera personalizada. La limitación es que solo busca los datos que se muestran en algunas páginas (vinculadas).Un enfoque más sofisticado es utilizar alguna biblioteca .NET que implemente indexación para usted (en función de los datos que le proporcione). Una biblioteca popular es, por ejemplo, Lucene.Net. En este caso, le proporciona los datos que desea buscar explícitamente (contenido relevante de páginas web, contenido de la base de datos, etc.), para que tenga más control de lo que se está buscando (pero es un poco más de trabajo).
lucene.net está muerto por lo que parece, ¿hay otras alternativas? – Augustas
@augustas Podría estar equivocado, pero parece haber alguna actividad https://git-wip-us.apache.org/repos/asf?p=lucenenet.git (48 horas en https: // git-wip- us.apache.org/repos/asf?p=lucenenet.git;a=commit;h=159c33ba2abbcfb9bf1882f672ba113ace9aa363) Es un proyecto intermitente de "tiempo libre" para las personas de apache (y ocasionalmente otras grandes corporaciones) que trabajan en eso. 3.0.3 está muerto AFAIK. 4.8 estaba en versión beta hace dos años.no sé qué pasó allí http://code972.com/blog/2016/07/98-lucene-net-4-8-is-in-beta-and-we-need-your-help - ¿tal vez medio muerto? Como uno de esos zombis realmente rápidos que Hollywood tiene ahora. – twobob
Crear las estructuras y los algoritmos del índice de búsqueda real no es una hazaña trivial. Es por eso que las personas usan Lucene, Sphinx, Solr, etc. El uso de google.com, como se recomienda en los comentarios, no le dará control y una comparación deficiente en comparación con lo que obtendrá de uno de estos motores de búsqueda gratuitos, cuando esté configurado correctamente y usado.
Lo recomiendo echar un vistazo a Solr, que le da el poder de Lucene, pero es mucho más fácil de usar, además de que añade varias características de conveniencia como el almacenamiento en caché, sharding, facetado, etc.
SolrNet es un cliente Solr para .Net, tiene una aplicación ASP.NET MVC de muestra que puede usar para ver cómo funciona y como base para su proyecto.
Descargo de responsabilidad: soy el autor de SolrNet.
¿Todavía está en desarrollo activo? El github parece activo aunque – JochemQuery
Escribí un motor de búsqueda personalizado para mi sitio MVC 4. Analiza los directorios Ver y lee todos los archivos .cshtml, que coinciden con los términos proporcionados con una expresión regular. Aquí está el código básico:
List<string> results = new List<string>();
DirectoryInfo di = new DirectoryInfo(System.Configuration.ConfigurationManager.AppSettings["PathToSearchableViews"]);
//get all view directories except the shared
foreach (DirectoryInfo d in di.GetDirectories().Where(d=>d.Name != "Shared"))
{
//get all the .cshtml files
foreach (FileInfo fi in d.GetFiles().Where(e=>e.Extension == ".cshtml"))
{
//check if cshtml file and exclude partial pages
if (fi.Name.Substring(0,1) != "_")
{
MatchCollection matches;
bool foundMatch = false;
int matchCount = 0;
using (StreamReader sr = new StreamReader(fi.FullName))
{
string file = sr.ReadToEnd();
foreach (string word in terms)
{
Regex exp = new Regex("(?i)" + word.Trim() + "(?-i)");
matches = exp.Matches(file);
if (matches.Count > 0)
{
foundMatch = true;
matchCount = matches.Count;
}
}
//check match count and create links
//
//
}
}
}
}
return results;
parece que no está funcionando si algunos datos se leen desde la base de datos, ¿verdad? –
- 1. ¿Cómo construir un motor de "preguntas relacionadas"?
- 2. ¿Cómo diseñar un motor de búsqueda personalizado?
- 3. Motor de búsqueda en Java?
- 4. Motor de búsqueda ASP.NET
- 5. ¿La mejor manera de construir un motor de búsqueda SMART mySQL & PHP?
- 6. Creación de un motor de búsqueda web
- 7. Motor de búsqueda para .net
- 8. programador amigable motor de búsqueda?
- 9. ¿Cómo resalta un sitio web los términos de búsqueda que utilizó en el motor de búsqueda?
- 10. cómo hacer un motor de búsqueda para el sitio web?
- 11. ¿Cómo evaluar un motor de búsqueda/recuperación usando trec_eval?
- 12. Motor de búsqueda similar a Google en PHP/mySQL
- 13. ¿Qué es un buen motor de búsqueda de código fuente?
- 14. Búsqueda de imágenes de Google: ¿cómo puedo construir una URL de búsqueda de imágenes inversa?
- 15. motor de búsqueda de Google y paginación
- 16. Paquete de motor de búsqueda instalable para búsqueda de archivos
- 17. ¿Cómo indexar su aplicación Silverlight en el motor de búsqueda?
- 18. Motor de búsqueda Lucene vs Base de datos de búsqueda
- 19. motor de búsqueda de expresiones regulares
- 20. motor de búsqueda liviano para asp.net
- 21. Motor de búsqueda - Lucene o Solr
- 22. . Motor de búsqueda de código abierto basado en .Net
- 23. motor de búsqueda Palabras clave Analizador
- 24. C# XNA: ¿Motor AI?
- 25. motor de búsqueda con 'Quiso decir'
- 26. Haciendo aplicación GWT rastreable por un motor de búsqueda
- 27. el mejor motor de búsqueda escrito con python
- 28. ¿Cómo agrupar las palabras clave del motor de búsqueda?
- 29. Cómo construir un proyecto VS2010 C++ en un BuildServer
- 30. ¿Cómo funciona el motor de búsqueda Android Market?
¿dónde estás pegado? ¿Estás atrapado en el almacenamiento de índice o con la búsqueda, o con el análisis de consultas? El motor de búsqueda es un tema bastante importante – vodkhang
¿Con qué parte estás teniendo problemas? Si tiene problemas para construir un motor de búsqueda complejo, comenzaría con un * simple * primero. Cree algo que solo busque documentos, porque eventualmente necesitará esa parte. Luego pase a las búsquedas en la base de datos. –
Señale google en él. Voila, búsqueda instantánea. – Randolpho