SolrJ

什麼是SolrJ

SolrJ是訪問Solr服務的java客戶端,提供索引和搜索的請求方法,SolrJ一般在嵌入在業務系統中,經過SolrJ的API接口操做Solr服務。html

SolrJ主要方法

SolrJ相關的類都包含在Solr源碼的org.apache.solr.client.solrj包下,該包下面主要包含了5個關鍵類。SolrClient、SolrRequest、SolrQuery、SolrResponse、ResponseParser。其中SolrClient類表示Solr Client是一個Solr客戶端的抽象。經過SolrClient你能夠與Solr Server進行以下操做。java

add

添加一個索引文檔到Solr Server,爲了支持面向對象編程,SolrClient提供了addBean方法,容許直接提交一個Java對象,SolrClient內部會藉助DocumentObjectBinder來完成Java對象與SolrInputDocument對象之間的類型轉換。爲了支持批量添加索引文檔,你還能夠直接add一個Document集合或者經過addBeans方法添加一個對象集合。數據庫

commit

即顯式的提交一個索引硬提交請求。apache

optimize

即顯式的要求Solr Server執行一次索引優化,會觸發Solr的索引段文件合併,此操做通常不建議調用太頻繁。編程

rollback

即顯式的要求Solr Server將還沒有提交的索引文檔從隊列中剔除,此回滾操做並不像是關係型數據庫裏的回滾操做,它不保證100%會回滾,由於你上一次提交的索引文檔可能會因爲你配置了AutoCommit,可能恰好因爲緩衝區滿了致使一次索引Flush、或者AutoCommit的間隔時間或者最大緩存索引文檔個數達到臨界值自動出發了一次硬提交,或者另外一個SolrClient客戶端顯式的發起了commit操做致使索引已經提交,此時索引文檔已經寫入到硬盤。,rollback操做將無濟於事。api

deleteById &deleteByQuery

這兩個方法主要用於向Solr Server發起一個索引刪除操做,deleteById表示根據Document的主鍵ID來刪除索引文檔,這裏的主鍵ID是你在schema.xml中配置的uniqueKey。deleteByQuery用於按照Solr查詢來刪除多個索引文檔。緩存

query & getById

這組方法主要用於向Solr Server發起一個查詢請求,其中getById方法是一個特殊的查詢請求,即根據索引文檔的主鍵ID進行查詢,前提是你的schema.xml配置了uniqueKey。ide

ping

用於發起一個ping請求來檢測Solr Server是否還「活着」,前提是你須要在Solrconfig.xml中配置PingRequestHandler。優化

<!-- ping/healthcheck -->
    <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
        <lst name="invariants">
            <str name="q">solrpingquery</str>
        </lst>
        <lst name="defaults">
            <str name="echoParams">all</str>
        </lst>
        <!-- <str name="healthcheckFile">server-enabled.txt</str> -->
    </requestHandler>
複製代碼

request

用於向Solr Server的指定Core或Collection發起一個HTTP請求。ui

參考文檔

相關文章
相關標籤/搜索