PHP Sphinx MySQL實現全文檢索

2021-08-19 14:41:21 字數 2504 閱讀 1454

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...