導航:首頁 > IDC知識 > solr伺服器搭建

solr伺服器搭建

發布時間:2020-10-27 03:31:36

1、如何備份solr集群的數據到Linux本地?

一般對於數據量抄在千萬級一下,單機版的solr足以應付日常查詢。相對於solr集群不同,單機版的solr一旦伺服器出現問題,不僅數據丟失還回造成查詢應用崩潰,所以建立主從配置進行數據備份或者備用伺服器還是比較重要的。
搭建好兩個solr服務,一個在window上運行作為從伺服器,用於備份數據,一個主伺服器運行在linux上,solr單機版搭建(6.4.2)參照linux搭建solr6.4.2。
solr用於備份是利用了replication handler,如果沒有從伺服器,主伺服器直接進行備份可以將數據在主伺服器本機做一次備份,可以使用http執行或者curl方法執行,下面是直接在地址欄執行:

2、solr部署在weblogic上,項目中做增刪改查,每次都要重啟solr才行,不報錯,在本地好的,伺服器上就不行了

看下配置文件是否出問題了

3、什麼樣的網站需要solrcloud嗎

現在我們來剖析下這樣一個簡單的集群構建的基本流程:
先從第一台solr伺服器說起:
1) 它首先啟動一個嵌入式的Zookeeper伺服器,作為集群狀態信息的管理者,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4)創建/overseer_elect/leader,為後續Overseer節點的選舉做准備,新建一個Overseer,
5) 更新/clusterstate.json目錄下json格式的集群狀態信息
6) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
7)上傳本地配置文件到Zookeeper中,供集群中其他solr節點使用
8) 啟動本地的Solr伺服器,
9) Solr啟動完成後,Overseer會得知shard中有第一個節點進來,更新shard狀態信息,並將本機所在節點設置為shard1的leader節點,並向整個集群發布最新的集群狀態信息。
10)本機從Zookeeper中再次更新集群狀態信息,第一台solr伺服器啟動完畢。
然後來看第二台solr伺服器的啟動過程:
1) 本機連接到集群所在的Zookeeper,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
5) 從集群中保存的配置文件載入Solr所需要的配置信息
6) 啟動本地solr伺服器,
7) solr啟動完成後,將本節點注冊為集群中的shard,並將本機設置為shard2的Leader節點,
8) 本機從Zookeeper中再次更新集群狀態信息,第二台solr伺服器啟動完畢。
示例2,包含2個shard的集群,每個shard中有replica節點

4、linux伺服器上solr怎麼更新資料庫數據

全部實時更新耗資源,敏感表實時更新,非敏感數據定時更新就行。寫個SQL腳本,放在linux伺服器定時執行,開AB資料庫對linux伺服器的增、改、查許可權。

5、怎麼在Eclipse中將文件傳給Solr伺服器

用tortiseSVN登陸SVN,右鍵單擊選擇create folder可以創建文件件,然後將項目的文件夾傳上去;或者右鍵單擊選擇 add folder 把項目的文件夾傳上去。如果在eclipse下需要安裝一個SVN的插件,才能checkout/in文件或工程項目。

6、如何向solr伺服器提交大日誌文件

public static void main(String[] args) {
    try {
      //Solr cell can also index MS file (2003 version and 2007 version) types.
      String fileName = "c:/Sample.pdf"; 
      //this will be unique Id used by Solr to index the file contents.
      String solrId = "Sample.pdf"; 
       
      indexFilesSolrCell(fileName, solrId);
       
    } catch (Exception ex) {
      System.out.println(ex.toString());
    }
  }
   
  /**
   * Method to index all types of files into Solr. 
   * @ fileName
   * @param solrId
   * @throws IOException
   * @throws SolrServerException
   */
  public static void indexFilesSolrCell(String fileName, String solrId) 
    throws IOException, SolrServerException {
     
    String urlString = "http://localhost:8983/solr"; 
    SolrServer solr = new CommonsHttpSolrServer(urlString);
     
    ContentStreamUpdateRequest up 
      = new ContentStreamUpdateRequest("/update/extract");
     
    up.addFile(new File(fileName));
     
    up.setParam("literal.id", solrId);
    up.setParam("uprefix", "attr_");
    up.setParam("fmap.content", "attr_content");
     
    up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
     
    solr.request(up);
     
    QueryResponse rsp = solr.query(new SolrQuery("*:*"));
     
    System.out.println(rsp);
  }

7、為什麼要使用solrcloud

現在我們來剖析下這樣一個簡單的集群構建的基本流程:
先從第一台solr伺服器說起:
1) 它首先啟動一個嵌入式的Zookeeper伺服器,作為集群狀態信息的管理者,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4)創建/overseer_elect/leader,為後續Overseer節點的選舉做准備,新建一個Overseer,
5) 更新/clusterstate.json目錄下json格式的集群狀態信息
6) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
7)上傳本地配置文件到Zookeeper中,供集群中其他solr節點使用
8) 啟動本地的Solr伺服器,
9) Solr啟動完成後,Overseer會得知shard中有第一個節點進來,更新shard狀態信息,並將本機所在節點設置為shard1的leader節點,並向整個集群發布最新的集群狀態信息。
10)本機從Zookeeper中再次更新集群狀態信息,第一台solr伺服器啟動完畢。
然後來看第二台solr伺服器的啟動過程:
1) 本機連接到集群所在的Zookeeper,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
5) 從集群中保存的配置文件載入Solr所需要的配置信息
6) 啟動本地solr伺服器,
7) solr啟動完成後,將本節點注冊為集群中的shard,並將本機設置為shard2的Leader節點,
8) 本機從Zookeeper中再次更新集群狀態信息,第二台solr伺服器啟動完畢。
示例2,包含2個shard的集群,每個shard中有replica節點

8、如何向solr伺服器提交大日誌文件

java代碼041424344public static void main(String[] args) { try { //Solr cell can also index MS file (2003 version and 2007 version) types. String fileName = "c:/Sample.pdf"; //this will be unique Id used by Solr to index the file contents. String solrId = "Sample.pdf"; indexFilesSolrCell(fileName, solrId); } catch (Exception ex) { System.out.println(ex.toString()); } } /** * Method to index all types of files into Solr. * @param fileName * @param solrId * @throws IOException * @throws SolrServerException */ public static void indexFilesSolrCell(String fileName, String solrId) throws IOException, SolrServerException { String urlString = "localhost:8983/solr"; SolrServer solr = new CommonsHttpSolrServer(urlString); ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract"); up.addFile(new File(fileName)); up.setParam("literal.id", solrId); up.setParam("uprefix", "attr_"); up.setParam("fmap.content", "attr_content"); up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); solr.request(up); QueryResponse rsp = solr.query(new SolrQuery("*:*")); System.out.println(rsp); }

9、solrcloud怎樣刪除配置文件

現在我們來剖析下這樣一個簡單的集群構建的基本流程:
先從第一台solr伺服器說起:
1) 它首先啟動一個嵌入式的Zookeeper伺服器,作為集群狀態信息的管理者,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4)創建/overseer_elect/leader,為後續Overseer節點的選舉做准備,新建一個Overseer,
5) 更新/clusterstate.json目錄下json格式的集群狀態信息
6) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
7)上傳本地配置文件到Zookeeper中,供集群中其他solr節點使用
8) 啟動本地的Solr伺服器,
9) Solr啟動完成後,Overseer會得知shard中有第一個節點進來,更新shard狀態信息,並將本機所在節點設置為shard1的leader節點,並向整個集群發布最新的集群狀態信息。
10)本機從Zookeeper中再次更新集群狀態信息,第一台solr伺服器啟動完畢。
然後來看第二台solr伺服器的啟動過程:
1) 本機連接到集群所在的Zookeeper,
2) 將自己這個節點注冊到/node_states/目錄下
3) 同時將自己注冊到/live_nodes/目錄下
4) 本機從Zookeeper中更新集群狀態信息,維持與Zookeeper上的集群信息一致
5) 從集群中保存的配置文件載入Solr所需要的配置信息
6) 啟動本地solr伺服器,
7) solr啟動完成後,將本節點注冊為集群中的shard,並將本機設置為shard2的Leader節點,
8) 本機從Zookeeper中再次更新集群狀態信息,第二台solr伺服器啟動完畢。
示例2,包含2個shard的集群,每個shard中有replica節點

10、solr5.2.1怎麼得到SolrServer實例,求各位大神指點迷津

SolrServer實例化類型有httpClient,和本地化,如果Solr伺服器不在本地就用httpClient,在本地就用EmbeddedSolrServer
SolrServer可以操作索引,包括更新刪除查詢等操作
以下是httpClient實例化方式,需要tomcat運行Solr服務
1、ConcurrentUpdateSolrServer實例化SolrServer,該類實例化多用於更新刪除索引操作

ConcurrentUpdateSolrServer(String solrServerUrl, int queueSize, int threadCount)

solrServerUrl是Solr伺服器的地址,

queueSize緩沖區大小

threadCount 後台線程數<br><br>

2、HttpSolrServer 實例化SolrServer,該類實例化多用於查詢操作

HttpSolrServer(String baseURL)

baseURL是Solr的伺服器地址

3、LBHttpSolrServer實例化SolrServer,用於有多個Solr伺服器,負載均衡

LBHttpSolrServer(String... solrServerUrls)

solrServerUrls是多個Solr的伺服器地址,用,號分隔
以下是本地實例化,即項目包含Solr服務,不需要tomcat運行Solr服務
EmbeddedSolrServer

private static CoreContainer.Initializer initializer = null;
private static CoreContainer coreContainer = null;
private static EmbeddedSolrServer server = null;
static {
try {
System.setProperty("solr.solr.home", "D://test//solrcore//core0");
initializer = new CoreContainer.Initializer();
coreContainer = initializer.initialize();
server = new EmbeddedSolrServer(coreContainer, "");
} catch (Exception e) {
e.printStackTrace();
}
}

與solr伺服器搭建相關的知識