solr文件索引最佳實踐

2021-08-04 17:32:12 字數 1516 閱讀 7017

@(others)[solr]

solr的文件生成後,需要將其提交到solr集群,提交的方法有以下三種:

每生成乙個文件就直接提交至solr:

cloudsolrclient client = new cloudsolrclient(solr_zk);

solrinputdocument doc2 = new solrinputdocument();

doc2.addfield("id", "ljhtest3");

doc2.addfield("key_ss", map);

client.add(doc2);

client.commit();

即每add一次就commit一次,這種實現方案實現簡單,但效能不高。

* 注意,不只是commit()效率不高,client.add()的效率也是非常低的,因此需要將所有文件先add進乙個collection,然後client.add(collection) *

listdoclist = new linkedlist();

for (int i = 0; i < doc_num; i++)

map map = new hashmap();

map.put("set", set);

doc2.addfield("key_ss", map);

doclist.add(doc2);

}client.add(doclist);

client.commit();

可以在solrconfig.xml中的updatehandler設定自動提交機制:

$$

$false

$

可以指定多長時間間隔或者多少文件就會提交一次。

有hard & soft2種,後者不會將資料同步到disk。

client.add(default_collection, doc,1000);
client.add()的文件會在1000ms內被提交到solr中。

1、將需要提交的文件add到乙個collection中。

2、client add這個collection,而不是add文件 。

3、client指定commitwithin引數。

參考**如下:

listdoclist = new linkedlist();

for (int i = 0; i < doc_num; i++)

map map = new hashmap();

map.put("set", set);

doc2.addfield("key_ss", map);

doclist.add(doc2);

}client.add(doclist);

client.commit();

(1)hbase寫時要有多執行緒

(2)coprocessor會在多個分割槽中並行執行。

solr 最佳實踐

管理頁面的data import頁可以手動重建索引,configuration指定了資料來源,重建索引也可以通過http請求觸發 管理頁面的schema頁用來配置索引字段。每天晚上的定時全量重建索引是通過linux的crontab實現的。該目錄下的upsolr.sh是solr的啟動指令碼,配置了je...

Solr新增文件到索引

solr新增文件非常方便,不用像lucene那樣乙個乙個新增field,省去了很多的麻煩下面看操作 方法一 note id為唯一,不可重複,如果重複,solr會自動將索引中id相同的元素更新為現在的屬性 域的名稱可以在schema.xml的field中設定,預設的有很多field,我們也可以使用預設...

三 mysql 索引最佳實踐

一 myql索引底層資料結構與演算法 二 mysql explain工具介紹 三 mysql 索引最佳實踐 四 mysql索引優化實戰 五 mysql 常見sql語句優化 六 mysql索引優化實戰二 七 mysql事務隔離機制和鎖機制 create table employees id int 1...