搜尋方案 solr+php如何安裝配置?
問題
solr+php如何安裝設定使用
解決方法1:
solr提供http請求查詢介面。客戶端透過觸發http請求獲取json、xml等數據格式數據,並對數據進行解析顯示。一般情況下各種語言都會有封裝好的客戶端插件,如java的solrj、python的solrpy,php的php-solr-client,根據提供的api進行索引和查詢。至於solr的安裝配置可以去看看solr cookbook 這本書.
解決方法2:
要讓php程式用上solr java怎麼辦? 搜素系統的索引怎麼建立?
php怎麼寫程式碼?
solr是java寫的,是一個伺服器程序,有一個管理介面,提供http介面
除了設定檔不用寫java程式碼、php有solr的擴充
1,安裝solr和驗證你安裝上了
參考CentOS下安裝Solr5.3
solr5.3已經是單獨的伺服器,包括web管理後台,所以挺好的只需要保證你的linux 有jdk直接下載solr5.3的包, Apache Download Mirrors
一定要下載solr5.3.tgz 這樣的,不要下src的包,然後解壓縮得到類似solr5.3這樣的目錄
安裝最關鍵的兩點1 不是解壓縮就能用solr目錄下有個install腳本要運行,並且要指定data目錄(要儲存索引)2 solr 有一個core的概念,理解成資料庫裡的db吧,可以建立一個core,這個也有腳本,但一定保證data目錄是solr用戶的權限
# solr-5.3.0/bin/install_solr_service.sh solr-5.3.0.tgz -d /data/solr -i /usr/local
創建一個你自己的core
http://你的ip::8983/solr 這個是管理介面
只專注於add Documents 和query 即可,一個事加索引一個事查詢,特別容易理解add Documents介面,已經有例子,索引了兩個欄位id和title ,你改下資料提交
Query 介面 q=*:* 查詢所有
q=title:a* 查詢title為a開頭的
簡單玩幾次很容易明白
現在有id,title 我想添加一個自己的字段,type怎麼辦? :
參考下填入上type即可
service solr stop/start 重啟服務
回到管理介面,加入數據,假設你要聯合搜尋title和type
那麼q= title:xx fq= type:xx, 多加一個fq明白了吧
3,寫一個php程式
q明白了吧
3,寫一個php程式研究,基本上可以做到建立數據,查出數據現在就寫一個php程式完成這些功能參考:PHP: Solr - Manual
SolrInputDocument 輸入文檔
SolrClient 這個是用戶連接solr伺服器
SolrQuery SolrClient 這個是用戶連接solr伺服器
SolrQuery 這個是構建這個是構建這個是直接構建條件上程式好了:
class Search { private $client; public function __construct() { $options = [ 'hostname' => 'localhost', //solr服务器的ip 'path' => 'solr/corename', //这个解决core的问题,corename就是你的core 'wt' => 'json', ]; $this->client = new \SolrClient($options); } public function addIndex($id, $type, $content) {//加索引的函数 $doc = new \SolrInputDocument(); $doc->addField('id', $type . "." . $id); //保证id唯一我把type加上了 $doc->addField('type', $type); $doc->addField('title', $content); $client = $this->client; $updateResponse = $client->addDocument($doc); $client->commit(); //一定要commit才能立即生效 $ret = ($updateResponse->getResponse()); if ( isset($ret->responseHeader['status']) ) { return $ret->responseHeader['status'] == 0?true:false; } return false; } public function search($key, $type=0, $page=0, $limit=15) { $query = new \SolrQuery(); $query->setQuery('title:' . $key . "*"); //这个是设置keyword $query->setStart($page); //分页的 $query->setRows($limit); if($type) { $query->addFilterQuery('type:' . $type); //用到fq了 } $query->addField('id')->addField('title')->addField('type'); //这里是你要查哪些字段 $client = $this->client; $query_response = $client->query($query); $response = $query_response->getResponse(); $response = ($response->response); if ( is_array($response->docs) ) { foreach($response->docs as &$doc) { $id = explode(".", $doc->id); if( isset($id[1]) ) { $doc->id = $id[1]; } $doc->type = isset($doc->type[0])?$doc->type[0]:''; } } return ($response); } }
相關文章: php的solr的操作類別及demo安裝php-solr擴充集成PHP 應用和Sol 搜尋引擎

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。
