更新配置集
本文介紹HBase Search全文索引更新配置集的方法。
前提條件
下載并安裝Shell,具體請(qǐng)參見Shell訪問指導(dǎo)。
注意事項(xiàng)
建議使用dynamicField功能,不單獨(dú)定義每個(gè)索引列,避免頻繁修改
managed-schema
文件。每個(gè)索引需要有自己的配置集,不建議多個(gè)索引共享配置集。
如果需要自己定義配置,請(qǐng)下載
_indexer_default
配置集后,在此基礎(chǔ)上進(jìn)行修改。
下載默認(rèn)的配置集模板
執(zhí)行以下命令下載默認(rèn)的配置集模板_indexer_default
,在其基礎(chǔ)上進(jìn)行編輯,添加業(yè)務(wù)自定義的配置。
cd alisolr-7.3.8-bin/bin
./solr zk ls /configs # 查詢已有的配置集列表
./solr zk downconfig -d . -n _indexer_default # 下載配置集_indexer_default到當(dāng)前目錄
執(zhí)行上述命令成功后,在當(dāng)前目錄下會(huì)生成一個(gè)conf的目錄,其中有兩個(gè)重要的文件:managed-schema
和solrconfig.xml
。
創(chuàng)建新的配置集
下面給出一個(gè)簡(jiǎn)單的示例:
打開
managed-schema
文件。增加兩個(gè)新的索引列定義,增加內(nèi)容如下:
<field name="name" type="string" indexed="true" stored="true" required="false" multiValued="false" /> <field name="age" type="pint" indexed="true" stored="true" docValues="true" multiValued="false" />
說(shuō)明name
是string類型,age
是基本int類型(pint代表int,plong代表long),兩個(gè)列都需要建立索引indexed=true
,并且都需要存儲(chǔ)原始數(shù)據(jù)stored=true
。每增加一個(gè)新列,都需要在文件中定義好,當(dāng)需要增加非常多的列時(shí),定義起來(lái)會(huì)比較復(fù)雜。此時(shí),可以使用Search服務(wù)提供的動(dòng)態(tài)列能力,參考
managed-schema
中的dynamicField
定義,有了它之后不需要額外定義每個(gè)列,只需要在寫入數(shù)據(jù)時(shí)指定的列名稱后綴與定義保持一致即可。例如:
name_s
可以自動(dòng)匹配*_s
。age_i
可以自動(dòng)匹配*_i
。
上傳配置集。
修改完后,可以上傳自定義的配置集(建議每個(gè)collection對(duì)應(yīng)一個(gè)配置集),執(zhí)行如下命令:
./search-cli zk upconfig -d conf/ -n myconf
在集群管理系統(tǒng)查看配置集是否上傳成功,登錄集群管理系統(tǒng)請(qǐng)參見登錄集群管理系統(tǒng)。
選擇
,查看配置集myconf
是否上傳成功。