sphinx 可以解決 站內搜尋的應用場景(用來生成索引資料,為後續的高效搜尋做鋪墊)
sphinx 簡介
sphinx是乙個基於sql(mysql sqlserver... )的全文檢索引擎,它提供了比資料庫更加專業的搜尋功能,並且sphinx特別為一些指令碼語言設計了搜尋的api介面嗎,比如php、ruby、python等,同時為mysql也設計了乙個儲存引擎外掛程式
它是如何與生成索引的?
連線mysql資料庫(sphinx需要安裝在伺服器中,在sphinx工具的配置檔案sphinx.conf中配置相關的資訊)
sphinx的應用場景
本質上的處理方式是 php 》 mysql
運用了sphinx後的處理方式是 mysql的資料在sphinx中產生索引的資料 》 php直接查詢訪問sphinx即可
為什麼要用sphinx?
1. 做搜尋時當資料量很大,單純的mysql搜尋比較慢(如果表進行了分表,那樣會更慢)
案例:當遇到mysql單錶的情況下且單錶的資料量超過了100w甚至更大,如果用模糊查詢like,我們表中的索引基本用不上,在執行搜尋的這個動作時,mysql會將整個表進行乙個遍歷,速度在n秒+。
2. 搜尋時中文分詞
3. sphinx 快!
舉例說明:高速的建立索引(在當代的cpu中,峰值能達到10m/s)
高效能的搜尋(在2~4g的文字資料資訊上,平均每次檢索的時間小於0.1秒)
文件介紹
ubuntu安裝
centos安裝
windows安裝
具體安裝還需看文件
安裝完後之後的目錄概述(配置檔案 + api + 主要的兩個工具)
/etc/sphinxsearch ---- 存放sphinx工具的配置檔案
/usr/share/sphinxsearch ---- 存放api介面(可以cd後檢視支援的的介面)
/usr/bin/indexer ---- 建立索引 import
/usr/bin/searched ---- 後端的程序 import
詳細的配置檔案資訊,參照官網的文件
sphinx如何工作--利用indexer工具生成索引資料
命令列生成方式
判斷索引資料是否生成成功?
去檢視配置檔案sphin.conf中 index news_main 下的path(看主索引生成的目錄),找到相關的目錄(注意日期,字尾 字尾詳解如下圖)
· * 需要注意的是 在searchd 工具中 預先會將 .spa .spi 取到記憶體當中。
sphinx如何工作--searched 工具 searched :後台程序,使用indexer工具生成的資料做查詢(處理查詢,將相應的資料返回給客戶端)
1. 通過命令進入(p的埠在sphinx.conf中配置,:mysql的是常規埠 沒有的是api的埠)
mysql -h0 -p9306 # 進入sphinx
select * from 索引資料名 # 模擬檢視sphinx的資料,查詢出的字段是可以在配置檔案中逐個配置的。
實變函式 實分析總結
一 概述。實變函式,又叫實分析,整本書滿滿的證明就講了乙個勒貝格積分。最為大家所熟知的是用牛頓 萊布尼茨公式算的黎曼積分。但是黎曼積分本身依賴於函式的連續性,像不連續的狄利克雷函式就無法積分了。為了解決這一問題,勒貝格利用分割值域的方法,使得函式可積。但是分割出來的值域,只能放在一起,形式集合。如果...
NestedScrollWebview實現與優化
nestedscrollwebview實現與優化 原文如下 好久沒寫了,好像也沒什麼人關注我,呵呵,但我還是堅持寫一下,希望能幫到有需要的人!今天我來說一下nestedscrollwebview。最近在弄乙個需求,我需要用到coordinatorlayout webview 實現滾動互動效果,但要實...
saltstack keepalived實現高可用
本篇部落格承接saltstack安裝部署和saltstack grains,pillar,jinja模組的使用 建立目錄。root server1 keepalived vim files keepalived.conf configuration file for keepalived globa...