PHP使用MeiliSearch實現全文檢索

2021-10-22 18:53:37 字數 3106 閱讀 9621

支援多種安裝方式,本文採取的是docker的安裝方式。

其他安裝方式詳見官網文件:

docker方式安裝:

docker run -it --rm \

-p 7700:7700 \

-v $(pwd)/data.ms:/data.ms \

getmeili/meilisearch

執行命令後,程式將自動安裝docker版的meilisearch,會在你當前執行命令所在的目錄下新建乙個data.ms資料夾,用於儲存meilisearch的資料。

安裝好後,訪問你的伺服器ip:7700,例如 ,顯示如下介面則說明安裝成功:

只需要將該檔案中的內容post到/indexes/:index_uid/documents即可,例如:/indexes/movies/documents

其中movies就代表索引的唯一標識。如果沒有建立,post後,會自動建立。

這裡為了簡便,使用了postman來傳送post請求。

傳送後,返回的響應的如下:

meilisearch的大部分操作都是非同步的,當我們傳送post資料到meilisearch伺服器後,meilisearch會立即返回乙個響應,這個響應就是updateid,通過updateid可以進一步查詢狀態。

通過訪問/indexes/movies/updates/0可以檢視響應結果的狀態。

匯入測試資料後,再次回到,可以體驗下meilisearch了:

例如這裡將id為9502的資料的title屬性的值改為功夫熊貓

傳送後,返回的響應的如下:

通過訪問/indexes/movies/updates/1可以檢視響應結果的狀態。

通過get方式/indexes/movies/settings/searchable-attributes可以查詢目前檢索的字段,預設為所有字段:*

設定檢索的字段:

只需要post乙個引數:q,值為要檢索的詞到http://localhost:7700/indexes/movies/search即可。

返回的結果為json欄位串,格式如下:

如果覺得麻煩,也可以使用下面簡易的**:

$result = search('panda');

var_dump($result);

/** * 檢索

* @param $keyword

* @param int $offset

* @param int $limit

* @return mixed

*/function search($keyword,$offset=0,$limit=20)

function curlpost($url = '', $postdata = '', $options = array())

$ch = curl_init();

curl_setopt($ch, curlopt_url, $url);

curl_setopt($ch, curlopt_returntransfer, 1);

curl_setopt($ch, curlopt_post, 1);

curl_setopt($ch, curlopt_postfields, $postdata);

curl_setopt($ch, curlopt_timeout, 30); //設定curl允許執行的最長秒數

if (!empty($options))

//https請求 不驗證證書和host

curl_setopt($ch, curlopt_ssl_verifypeer, false);

curl_setopt($ch, curlopt_ssl_verifyhost, false);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

php 使用vscode除錯php

安裝外掛程式php debug。找到xampp安裝目錄下的readme en.txt檔案,檢視php的具體版本php 5.6.30 vc11 x86 32bit thread safe pear。返回上級目錄,即c xampp php,找到php.ini,按照下面的列表配置,配置完成後重啟apach...

php陣列使用

1,把陣列轉成字串用逗號分開 implode array 2,多個陣列比較,去除相同的元素,返回不同的元素 array diff array1,array2,例如 a array 1,2,3,4,5,6 b array 2,3 c array 4,5 則 d array diff a,b,c 值為 ...

php基本使用

可以出現在任何位置 php檔案需要執行在伺服器環境,在瀏覽器中輸入localhost ajax 01.phpphp語句要求末尾加分號 echo 以 開頭,後面變數名稱 變數命名規則 與js相同 a 10 b hello world c true echo a.10 echo b.hello worl...