@(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...