首頁 後端開發 php教程 php的solr的操作類別及demo

php的solr的操作類別及demo

Mar 24, 2017 pm 01:25 PM

php的solr的操作類別及demo

一、solr類

'127.0.0.1','port' => '8080');
    /**
     * 设置solr库选择
     * @param $core string 库名称
     */
    public static function setCore($core){
        if($core) self::$options['path']='solr/'.$core;
    }
 
    /**
    * 增加solr索引
    * @param $fieldArr 索引字段及值
    * @return bool true
     */
    public static function addDocument($fieldArr=array()){
        $client = new SolrClient(self::$options);
        $doc = new SolrInputDocument();
        foreach($fieldArr as $k => $v){
            $doc->addField($k,$v); 
        }
        $client->addDocument($doc);
        $client->commit();
        return true;
    }
 
    /**
    * 删除索引
    * @param $id 主键id id可以为数组形式,应用于多选的情况
    * @return bool true
    */
    public static function delDocument($ids){
        $client = new SolrClient(self::$options);
        if(is_array($ids))
            $client->deleteByIds($ids);
        else
            $client->deleteById($ids);
        $client->commit();
        return true;
    }
 
    /**
    * 查询数据
    * @param $qwhere     关键字
     * @param $fqwhere 附加条件,根据范围检索,适用于数值型
    * @param $getField    查询字段
     * @param $sort 排序 array('duration'=>'asc')  asc:升序,desc:降序
    * @param $pageindex   查询页数
    * @param $pagesize    每页显示条数
    */
    public static function selectQuery($qwhere=array(),$fqwhere=array(),$getField=array(),$sort=array(),$pageindex=1,$pagesize=20){
        $client = new SolrClient(self::$options);
        $query = new SolrQuery();
        $sel = '';
        foreach($qwhere as $k => $v){
//            $sel .= ' +'.$k.':'.$v;
            $sel = "{$k} : \"{$v}\"";
        }
        $query->setQuery($sel);
        //关键字检索
 
        //附加条件,根据范围检索,适用于数值型
        if($fqwhere){
            $query->setFacet(true);
            foreach($fqwhere as $k => $v)
                $query->addFacetQuery($v);
            //$query->addFacetQuery('price:[* TO 500]');
        }
 
        //查询字段
        if($getField){
            foreach($getField as $key => $val)
                $query->addField($val);
        }
        //排序
        if($sort){
            foreach($sort as $k => $v){
                if($v == 'asc')
                    $query->addSortField($k,SolrQuery::ORDER_ASC);
                elseif($v == 'desc')
                    $query->addSortField($k,SolrQuery::ORDER_DESC);
            }
        }
        //分页
        $query->setStart(self::getPageIndex($pageindex,$pagesize));
        $query->setRows($pagesize);
         
        $query_response = $client->query($query);
        $response = $query_response->getResponse();
        return $response;
    }
 
    /**
    * 分页数据处理
    */
    private static function getPageIndex($pageindex,$pagesize){
        if($pageindex<=1)
            $pageindex = 0;
        else
            $pageindex = ($pageindex-1)*$pagesize;
        return $pageindex;
    }
 
}
登入後複製

二、操作demo   rsolsol二、操作demo

內容,更多相關內容請關注PHP中文網(www.php.cn)!

相關文章:

安裝php-solr擴充

搜尋方案 solr+php如何安裝設定?

整合 PHP 應用與 Solr 搜尋引擎

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
demo是什麼意思 demo是什麼意思 Feb 12, 2024 pm 09:12 PM

demo這個字對喜歡唱歌的朋友已經不在陌生了,但有很多沒有接觸到的使用者好奇了demo是什麼意思呢?現在就來看看小編帶來的demo的含義介紹吧。 demo是什麼意思答案:錄音樣帶。 1.demo讀音英['deməʊ]、美['demoʊ]2、demo是"demonstration"的縮寫,一般指歌曲正式錄製前試聽的初步效果;3、demo用作名詞是錄音樣帶和試樣唱片的意思,用動詞是試用(尤指軟體)、示範和示範;

在PHP中使用Solr進行全文搜索 在PHP中使用Solr進行全文搜索 Jun 20, 2023 am 09:12 AM

Solr是一個基於Lucene的搜尋引擎,可以用來實現全文搜尋。在PHP中使用Solr進行全文搜索,可以幫助我們快速地透過關鍵字查詢到相關的數據,提高搜尋結果的準確性和可靠性。本文將為大家介紹如何在PHP中使用Solr進行全文搜尋。一、Solr的安裝與設定首先,我們需要在伺服器上安裝Solr與PHP的Solr擴充。 Solr的安裝步驟可以參考Solr的官方文檔

python random函式庫如何使用demo python random函式庫如何使用demo May 05, 2023 pm 08:13 PM

pythonrandom函式庫簡單使用demo當我們需要產生隨機數或從一個序列中隨機選擇元素時,可以使用Python內建的random函式庫。以下是一個有註解的例子,示範如何使用random函式庫:#導入random函式庫importrandom#產生一個0到1之間的隨機小數random_float=random.random()print(random_float)#產生一個指定範圍內的隨機整數(包括端點)random_int=random.randint(1,10)print(random_int)#

Java API 開發中使用 Solr 進行全文搜索 Java API 開發中使用 Solr 進行全文搜索 Jun 18, 2023 am 10:41 AM

隨著互聯網的發展和資訊爆炸式增長,我們現在能夠訪問和獲取的資訊量非常大,無論是從網頁、文獻還是日常生活中獲取的信息,都需要一種高效的方式來處理和管理。全文搜尋是一種非常有效率且常用的方式,它可以透過關鍵字或短語的方式定位和提取我們需要的信息,而Solr就是一種非常適合用於全文搜尋開發的工具。本文將介紹Solr的基本概念以及在JavaAPI開發中如

Realme 的 300W 快速充電演示顯示電池在短短 35 秒內從 0% 增加到 17% Realme 的 300W 快速充電演示顯示電池在短短 35 秒內從 0% 增加到 17% Aug 10, 2024 pm 10:14 PM

最近,Realme 宣佈為其所謂的 GT7 Pro 提供 300W 快速充電功能(如先前洩漏的詳細資訊),引起了人們的注意。不過,這並不是第一個發布此類聲明的品牌——小米也已經宣傳其 300W 充電功能已經有一段時間了。

在Beego中使用Solr進行搜尋和查詢 在Beego中使用Solr進行搜尋和查詢 Jun 23, 2023 am 10:54 AM

Beego是一個快速的Go語言網路框架,Solr是一個基於Lucene的搜尋和查詢伺服器。將兩者結合使用可以為Web應用程式提供高效的搜尋功能。本文將介紹在Beego中使用Solr進行搜尋和查詢的方法。第一步:安裝Solr在開始使用Solr前,先安裝Solr。 Solr可以從官方網站(https://lucene.apache.org/solr/)上下

SpringBoot基本web開發demo的方法 SpringBoot基本web開發demo的方法 Jun 02, 2023 am 10:22 AM

1.在創建的springboot專案中的pom.xml中導入Lombok的依賴org.projectlomboklombok1.18.62.安裝Lombok插件3.在主啟動類的同級創建實體類的包,在包中創建實體類,並在包中創建實體類,並在實體類別上使用Lombokpackagecom.hxy.bean;importcom.fasterxml.jackson.annotation.JsonFormat;importlombok.AllArgsConstructor;importlombok.Data;importlom

如何進行Apache Solr JMX服務RCE漏洞復現 如何進行Apache Solr JMX服務RCE漏洞復現 May 14, 2023 pm 02:25 PM

0x00簡介Solr是一個獨立的企業級搜尋應用程式伺服器,它對外提供類似Web-service的API介面。使用者可以透過http請求,向搜尋引擎伺服器提交一定格式的XML文件,產生索引;也可以透過HttpGet操作提出查找請求,並取得XML格式的回傳結果。此漏洞源自於預設設定檔solr.in.sh中的ENABLE_REMOTE_JMX_OPTS設定選項存在安全風險。 ApacheSolr的8.1.1和8.2.0版本的自帶設定檔solr.in.sh中存在ENABLE_REMOTE_JMX_OPTS=

See all articles