C#学习教程:如何在C#中构建搜索引擎分享


如何在C#中构建搜索引擎

我正在尝试在ASP.NET MVC中构建一个Web应用程序,并且需要构建一个非常复杂的搜索function。 当用户输入搜索词时,我想搜索各种数据源,包括文档,数据库中的表,网页url和一些像facebook这样的API。 任何提示,教程和提示将不胜感激。

你的问题表明你可能没有计划从头开始实现整个function,所以这里有一些你可能会觉得有用的链接。

构建实际的搜索索引结构和算法并非易事。 这就是人们使用Lucene,Sphinx,Solr等的原因。正如评论中所建议的那样,使用google.com,与你从其中一个免费搜索引擎获得的内容相比,如果配置正确,将无法控制和匹配不佳用过的。

我建议看看Solr ,它给你Lucene的力量,但它更容易使用,而且它增加了一些便利function,如缓存,分片,刻面等。

SolrNet是.Net的Solr客户端,它有一个示例ASP.NET MVC应用程序,您可以使用它来查看它的工作原理以及作为项目的基础。

免责声明:我是SolrNet的作者。

我为我的MVC 4网站编写了一个自定义搜索引擎。 它解析View目录并读取所有.cshtml文件,将提供的术语与正则表达式相匹配。 这是基本代码:

上述就是C#学习教程:如何在C#中构建搜索引擎分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

List results = new List(); 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; 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1269830.html

(0)
上一篇 1天前
下一篇 1天前

精彩推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注