osc搜索引擎框架search-framework,TngouDB,gso,
项目目的:OSChina 实现全文搜索的简单封装框架
License: Public Domain
包含内容:
重建索引工具 -> IndexRebuilder.java
增量构建索引工具 -> IndexUpdater.java
全文搜索框架
http://git.oschina.net/oschina/search-framework
TngouDB
背景
TngouDB是天狗网(tngou.net)开发的中文搜索引擎数据库,用于天狗农业网的农业搜索引擎。 天狗希望基于开源的力量,把TngouDB打造成为一个专门的中文索引NoSQL数据库。
简介
TngouDB是基于JAVA而开发的跨平台数据库,底层采用Lucene(存储引擎)、IK(分词)、Netty(通信)等 而打造的网络数据库。
TngouDB直接简化的Lucene的相关API的调用,使用SQL语句实现数据的CRUD操作。
特点
TngouDB可以脱离Lucene单机的现在,通过网络可以把TngouDB部署在单独的服务器上,单独处理存储于查询业务。TngouDb同
时简化的Solr的复杂性,用户可以通过简单的SQL语句进行相关的数据操作。TngouDB可以完全抛开Lucene与Solr相关的知识,用常见 的SQL语句就可以实现。
文档
文档地址:http://www.tngou.net/doc/tndb支持完整的安装、配置、使用文档。
使用案例
现在TngouDB暂且是内部测试版本,请先不用用于上线的项目!我们会不断的开发与更新,后期会发布相应的正式版本。
现在TngouDB用于天狗网的搜索业务 天狗农搜(http://www.tngou.net/search)
http://git.oschina.net/397713572/TngouDB
本项目为北大搜索引擎TSE的完整源代码(包括索引和爬虫两个独立项目的源代码),TSE 为《搜索引擎——原理、技术与系统》一书介绍的实现原型,有兴趣的朋友可以参考该书学 习TSE。
《搜索引擎——原理、技术与系统》提供的源码下载地址http://sewm.pku.edu.cn/book/
经常不能访问,这里我将以前下载学习的加入详细注释的源代码开放出来,不仅有注释的 源代码,还有一份详细的学习笔记—— CSDN博客专栏地址为:http://blog.csdn.net/column/details/inside-tse.html ,希望对入门的朋友有一些帮 助。
目录说明:
tse081227 —— TSE的网页搜集子系统(爬虫)。
index —— TSE的预处理和查询服务子系统,该目录非常大,其实不是因为源代码大,而是 因为其中的 index/Data/Tianwang.raw.2559638448 非常大,该文件为爬虫爬 取的原始网页数据。
另外,原始的 index/Data/Tianwang.raw.2559638448 文件有三百多兆,上传时提示超出 了
git.oschina.net/ 文件的最大限制(100M),所以将文件内容删掉了很多,为了得到
较小的文件,这个对于整个系统的运行没有任何影响,因为它只是爬取的原始网页数据, 可以多可以少。
http://git.oschina.net/lewsn2008/LBTSE
gso(Google So)
这是一个用Node.JS编写的Google搜索服务,原理是拿着用户的关键词去Google服务器搜索,然后将返回的结果响应给用户。使用NodeJs编写的谷歌搜索代理程序
关于证书的说明:文件列表中提供的证书仅为测试使用,在生产环境下需替换为你自己的证书
部署
安装:
git clone https://git.oschina.net/lenbo/gso.gitcd gso npm install --production
运行命令:
测试/调试:
npm start 或 node ./bin/run
生产环境
自定义设置
站点名称
设置站点名称后会在首页logo下,浏览器标题栏中显示。 修改conf/config.js文件, 找到name节点, 修改为自己的站点名:
name: '谷搜客'
统计脚本
将脚本粘贴到views/partials/statistics.ejs文件中
首页随机文字
将文字粘贴到data/words.txt中,每句以一个空行分割, 支持html代码
设置多个Google IP防止被屏蔽
将可用的IP放入conf/ip.txt文件中,每个ip以一个回车换行分割.
设置HTTP代理服务器
有时,我们可能需要设置一个代理服务器,比如google的ip失效暂时无法使用或被google屏蔽的时候. 修改conf/config.js文件, 找到proxy节点:
proxy: {
enable: false, //设置是否启用 timeout: 5000, //设置超时时间, enable为true时有效 host: '', //代理服务器地址 port: 80 //代理服务器端口 }
静态文件压缩
clone后的代码是未压缩的,可以使用grunt工具进行压缩。
压缩js,css文件
安装grunt工具:
npm install -g grunt-cli在项目根目录执行
grunt static命令修改conf/config.js中的r_prefix值为
/public
注:执行grunt命令前必须使用npm install安装依赖,而不是npm install --production
html代码压缩
启动服务前设置NODE_ENV为production即可,如NODE_ENV=production forever start bin/run
完成记录
增加“相关搜索”功能;
OpenSearch, 支持IE,Firefox,Chrome设置为默认搜索引擎;
简单的敏感词检测,否则连接会被墙/连接重置;
HTML代码压缩,基于html-minifier模块进行压缩已渲染好的HTML代码;
headroom功能(当页面向下滚动时,搜索区消失,当页面向上滚动时,搜索区又出现了。个人觉得这个体验对小屏幕笔记本及pad比较好,尤其是手机终端);
实现HTTPS功能(关键词加密);
使用cheeio替代jQuery解析;
输入框自动完成;
搜索内容语言切换;
根据时间段筛选结果;
使用filetype指令搜索时,结果项前缀显示filetype;
支持设置多个Google IP(2014-12-25);
增加HTTP代理功能(2014-12-28);
TODO
[ ] Pad显示优化,字体优化;
[ ] 优化手机端使用体验;
[ ] 支持键盘快捷键;
[ ] 支持维基百科检索;
[ ] 优化错误日志记录;
[ ] 支持视频元信息检索(同时检索可播放来源)
[ ] 增加在线代理功能(代理搜索结果中出现的部分被屏蔽的网站);
http://git.oschina.net/lenbo/gso
代码是一年前写好的,所以爬虫可能已经失效,不过在此基础上改改应该就可以了。
K:\GIT\dianying\scripts>tree /f文件夹 PATH 列表卷序列号为 EE77-EC45K:.│ iqiyi_movie_test.py│ letv_movie_test.py│ m1905_movie_test.py│ pps_movie_test.py│ pptv_movie_test.py│ qq_movie_test.py│ sohu_movie_test.py│ tudou_movie_test.py│ xunlei_movie_test.py│ youku_movie_test.py│└─douban doubanapi_1.py doubanapi_2.py doubanapi_3.py doubanapi_xj.py douban_movie_test.py
搜索网站
dianying_web.py支持将爬虫保存到mongodb中的数十万条记录以WEB方式的形式展示,并支持关键字查询。
http://git.oschina.net/awakenjoys/dianying
osc搜索引擎框架search-framework,TngouDB,gso,的更多相关文章
- 9个基于Java的搜索引擎框架
在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...
- [转]9个基于Java的搜索引擎框架
9个基于Java的搜索引擎框架 在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的 ...
- 搜索引擎框架之ElasticSearch基础详解(非原创)
文章大纲 一.搜索引擎框架基础介绍二.ElasticSearch的简介三.ElasticSearch安装(Windows版本)四.ElasticSearch操作客户端工具--Kibana五.ES的常用 ...
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名
转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...
- 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建、调试输出和建立时间系统
我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...
- 实体框架(Entity Framework)快速入门--实例篇
在上一篇 <实体框架(Entity Framework)快速入门> 中我们简单了解的EF的定义和大体的情况,我们通过一步一步的做一个简单的实际例子来让大家对EF使用有个简单印象,看操作步骤 ...
- 实体框架(Entity Framework)快速入门
实体 框架 (Entity Framework )简介 实体框架Entity Framework 是 ADO .NET 中的一组支持 开发 面向数据的软件应用程序的技术.是微软的一个ORM框架. OR ...
- iOS9全新的联系人相关框架——Contacts Framework
iOS9全新的联系人相关框架——Contacts Framework 一.引言 在以前iOS开发中,涉及联系人相关的编程,代码都非常繁琐,并且框架的设计也不是Objective-C风格的,这使开发者用 ...
- 嵌入式框架Zorb Framework搭建二:环形缓冲区的实现
我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...
随机推荐
- 分析内存使用情况 (JavaScript)
[此文档是初定版,随时可能进行更改.] JavaScript 内存分析器在 Visual Studio 2012 更新 1 和 Visual Studio 2013 中提供,旨在帮助你了解内存使用量和 ...
- [思路]为什么要做一个Web服务器
对于.net开发者而言,提到Web服务器最容易想到的就是IIS了. IIS功能强大,配置繁多,但不免对普通用户而言过于复杂,另外在云时代的今天,同时维护多个IIS或远程维护IIS还是有诸多不便的,有很 ...
- CF 338E Optimize! (线段树)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 出题人题解没看懂...囧. 然后看了下touris ...
- Delphi XE7下如何创建一个Android模拟器调试
利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断地加强.在实际的Android移动程序开发中,如果我们直接用android真机直接调试是非常不错.一是速度快,二是 ...
- Windows Phone 9再见了!
因为需要准备注册电气工程师考试,因此Windows Phone 8初学者教程的翻译只能就此打住了,在考完后,也许就是Windows Phone 9发布的时候还会回来! Bye bye!
- Spring Cloud Config
Spring Cloud Config provides server and client-side support for externalized configuration in a dist ...
- 基于visual Studio2013解决C语言竞赛题之1039移动
题目 解决代码及点评 /* 39. 有n个整数,编程序将前面的各个数依次向后移动k个位置, 最后k个数移到最前边的k个位置(见下图,其中n=8,k=3). */ # ...
- Web端server推送技术原理分析及dwr框架简单的使用
1 背景 "server推送技术"(ServerPushing)是近期Web技术中最热门的一个流行术语.它是继"Ajax"之后又一个倍受追捧的Web技术.&qu ...
- axure制作圆形组件——axure制作技巧
Axure本身是没有直接提供圆形组件的,所以很多朋友在微博上问,如何使用axure制作圆形,难道都要找美工-- Axure没有提供圆形组件,但是它提供了一个万能组件--矩形组件,只要有矩形组件,我们就 ...
- CSS中的!important属性用法
关于CSS的运用技巧有很多, 今天主要探讨一下CSS中 !important 这个属性的用法.在CSS的使用中,遇到最多的问题就是不同浏览器之间的兼容问题. 由于IE并不严格执行W3C标准, 而又几乎 ...