osc搜索引擎框架search-framework,TngouDB,gso,

項目目的:OSChina 實現全文搜索的簡單封裝框架css

License: Public Domainhtml

包含內容:java

  • 重建索引工具 -> IndexRebuilder.javanode

  • 增量構建索引工具 -> IndexUpdater.javagit

  • 全文搜索框架github

http://git.oschina.net/oschina/search-framework
web



TngouDB

背景

TngouDB是天狗網(tngou.net)開發的中文搜索引擎數據庫,用於天狗農業網的農業搜索引擎。 天狗但願基於開源的力量,把TngouDB打形成爲一個專門的中文索引NoSQL數據庫。mongodb

簡介

TngouDB是基於JAVA而開發的跨平臺數據庫,底層採用Lucene(存儲引擎)、IK(分詞)、Netty(通訊)等 而打造的網絡數據庫。

TngouDB直接簡化的Lucene的相關API的調用,使用SQL語句實現數據的CRUD操做。數據庫

特色

TngouDB能夠脫離Lucene單機的如今,經過網絡能夠把TngouDB部署在單獨的服務器上,單獨處理存儲於查詢業務。TngouDb同

時簡化的Solr的複雜性,用戶能夠經過簡單的SQL語句進行相關的數據操做。TngouDB能夠徹底拋開Lucene與Solr相關的知識,用常見 的SQL語句就能夠實現。npm

文檔

文檔地址: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 startnode ./bin/run

生產環境

  • 使用forever啓動:
    forever start -e err.log -o output.log ./bin/run

  • 使用pm2啓動:
    pm2 start ./bin/run -i max

自定義設置

站點名稱

設置站點名稱後會在首頁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文件

  1. 安裝grunt工具: npm install -g grunt-cli

  2. 在項目根目錄執行grunt static命令

  3. 修改conf/config.js中的r_prefix值爲/public

注:執行grunt命令前必須使用npm install安裝依賴,而不是npm install --production

html代碼壓縮

啓動服務前設置NODE_ENVproduction便可,如NODE_ENV=production forever start bin/run

完成記錄

  1. 增長「相關搜索」功能;

  2. OpenSearch, 支持IE,Firefox,Chrome設置爲默認搜索引擎;

  3. 簡單的敏感詞檢測,不然鏈接會被牆/鏈接重置;

  4. HTML代碼壓縮,基於html-minifier模塊進行壓縮已渲染好的HTML代碼;

  5. headroom功能(當頁面向下滾動時,搜索區消失,當頁面向上滾動時,搜索區又出現了。我的以爲這個體驗對小屏幕筆記本及pad比較好,尤爲是手機終端);

  6. 實現HTTPS功能(關鍵詞加密);

  7. 使用cheeio替代jQuery解析;

  8. 輸入框自動完成;

  9. 搜索內容語言切換;

  10. 根據時間段篩選結果;

  11. 使用filetype指令搜索時,結果項前綴顯示filetype;

  12. 支持設置多個Google IP(2014-12-25);

  13. 增長HTTP代理功能(2014-12-28);

TODO

  1. [ ] Pad顯示優化,字體優化;

  2. [ ] 優化手機端使用體驗;

  3. [ ] 支持鍵盤快捷鍵;

  4. [ ] 支持維基百科檢索;

  5. [ ] 優化錯誤日誌記錄;

  6. [ ] 支持視頻元信息檢索(同時檢索可播放來源)

  7. [ ] 增長在線代理功能(代理搜索結果中出現的部分被屏蔽的網站);

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

相關文章
相關標籤/搜索