Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实时Web搜索(在.Net中)_.net_Sql Server_Search_Lucene.net_Real Time - Fatal编程技术网

实时Web搜索(在.Net中)

实时Web搜索(在.Net中),.net,sql-server,search,lucene.net,real-time,.net,Sql Server,Search,Lucene.net,Real Time,你们将如何在.Net平台上创建一个“实时”搜索引擎。现在网络的近实时搜索非常流行,我希望你们能帮我集思广益。我可能最终会尝试制作一些原型,但主要是一种“心理训练” 这些要求是: .NET平台、IIS、MS SQL server或Lucene.NET(文件系统) 要索引的输入数据只是关键字加上一些元信息-不需要进一步处理 数据按关键字分组,并按关键字出现的次数排序 不保留历史数据(超过固定时间的数据被丢弃或移动到其他数据存储) 由于对主题了解不多,到目前为止,我得出了以下结论: 数据通过web服务

你们将如何在.Net平台上创建一个“实时”搜索引擎。现在网络的近实时搜索非常流行,我希望你们能帮我集思广益。我可能最终会尝试制作一些原型,但主要是一种“心理训练”

这些要求是:

  • .NET平台、IIS、MS SQL server或Lucene.NET(文件系统)
  • 要索引的输入数据只是关键字加上一些元信息-不需要进一步处理
  • 数据按关键字分组,并按关键字出现的次数排序
  • 不保留历史数据(超过固定时间的数据被丢弃或移动到其他数据存储)
  • 由于对主题了解不多,到目前为止,我得出了以下结论:

    数据通过web服务提供给系统。由于数据已经以关键字的形式存在,因此不执行进一步的处理。WS将数据保存到db。Select查询以固定的时间间隔执行以返回数据(例如:我们查询过去一小时的传入数据,并每秒执行一次查询)。分组和排序在内存中执行,以卸载sql server。数据库中的旧数据每隔几分钟就会被丢弃一次。 如果不断添加许多新行,我不确定sql server将如何处理这一问题。 然后显示分组和排序的数据

    我相信你们在这方面有更多的经验和更好的想法

    问候,


    Ondrej

    这个网站并不是真正用于头脑风暴,也不是帮助您设计应用程序

    你可能想把这篇文章发到网上,看看这个想法有什么要求和建议,看看实时网络搜索是否有商业意义


    但是,您需要确定如何比Google更快。

    根据您对系统的描述,基本数据库模式可能如下所示:

    关键词 -id(主键) -关键字(唯一)

    输入 -id(主键) -数据(文本)

    输入关键字 -id(主键) -输入\u id(外键) -关键字_id(外键) -计数(整数;id为keyword\u id的关键字在id为input\u id的输入中出现的次数) -过期日期(时间戳;每隔一段时间,所有过期的条目都需要删除)

    数据操作如下:

  • 写入:每当执行输入操作时,数据库引擎都必须处理写入所有三个表的写入操作
  • 读取:每当执行搜索操作时,数据库引擎都需要处理所有三个表的读取操作
  • 删除:每隔一段时间,您需要删除input_关键字表中的条目,如果需要,还需要删除关键字表中的条目

  • 在高流量系统上,您的数据库将经常受到攻击。由于使用数据库实际上只是为了方便跨这些表执行选择操作,而且数据的寿命非常短,因此最好使用内存中的数据结构来替换“关键字”和“输入关键字”表,以消除对磁盘的点击。这可能需要更复杂的应用程序代码,但在繁忙的系统上可能是值得的。

    您能给出一些您认为类似的站点的示例吗?我想到的站点是。我试图实现的功能是“趋势主题”。我感谢你的意见,但我想你有点误解了我的问题。我不是在问它是否有商业意义,或者我如何能打败谷歌。我只是问,鉴于上述要求,实施此类系统的最佳方式是什么。