這篇文章主要介紹“Solr schema怎么編寫”,在日常操作中,相信很多人在Solr schema怎么編寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Solr schema怎么編寫”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供大興安嶺網(wǎng)站建設(shè)、大興安嶺做網(wǎng)站、大興安嶺網(wǎng)站設(shè)計(jì)、大興安嶺網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、大興安嶺企業(yè)網(wǎng)站模板建站服務(wù),10年大興安嶺做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。1.uniquekey 作用:當(dāng)add doc的時候,配置了uniqueKey,后面的doc中uniqueKey相同的會覆蓋之前的doc,
如果沒有配置,那么將不會覆蓋。update的時候,依據(jù)uniqueryKey信息的話,
所以有update還是建議配上uniqueKey,一來比較完整配置信息,二來數(shù)據(jù)排查也方便。
對應(yīng)id這個域,必須 stored=true、indexed=true,類型建議使用long或者int,而不是string
如果有特殊場景需要按id排序的,就的使用TriedLongField,否則排序時候會按文本序排序。
2. defaultSearchField,故名思議就是默認(rèn)查詢的時候,查什么域。這句的用法體現(xiàn)在:
queryStr= content:abc 123, 等價 queryStr= content:abc title:123
queryStr= 123 等價 queryStr= title:123
也就是說等查詢的時候,沒有指定查那個域,默認(rèn)就對應(yīng)defaultSearchField了。
既然是defaultSearchField,那么這個域indexed=true 是必須的
注意區(qū)分 content:abc 123 與content:”abc 123” 以及 content:(abc 123)
3. 所有int sint tint long slong tlong float sfloat tfloat double sdouble tdouble
都不支持分詞,也無需分詞。沒有sshort tshort,只有short。因?yàn)檫@些基本類型就一個值,無需什么分詞。
對與int long fload Field,不應(yīng)該出現(xiàn)positionincrmentGap=100
對與tint tlong tdoube 才有 pricisionStep、positionIncrementGap、sortMissingLast=”true”屬性。
4. 配置分詞
所有TextField才有機(jī)會分詞
所有TextField才有機(jī)會執(zhí)行facet
所有TextField 配置的omitTermFreqAndPositions=”true” 才會起效果,排序中頻率位置信息沒了
5. omitNorms=”true” 這個參數(shù)影響域的得分,去掉之后,使得長短域相同詞得分一致。按照香濃原理,
某個詞出現(xiàn)在更長的文本中,或者出現(xiàn)次數(shù)越多,信息值更低。對應(yīng)如果omitNorms=false,那么
下面 淘寶 出現(xiàn)doc1 淘寶杭州 出現(xiàn)doc2 淘寶杭州網(wǎng)絡(luò)有限公司,命中淘寶的時候,doc1 得分高于doc2
注意:只有有一個域的omitNorms=”false”,等價所有域都保留了omitNorms 這個位置,盡管omitNorms內(nèi)容是空,
所有,omitNorms在所有域都o(jì)mitNorms=“true”的時候,才對索引有幫助。
6. required=”true”
這個屬性是說,一旦scham中該域啟用required=“true”,那么建索引的時候,這個域時不能為空的,這個doc認(rèn)為不完
整。當(dāng)前走dump中心,會對null的賦值為””,也就不會出現(xiàn)沒有值的情況。但是schema中還是應(yīng)該突出下,如果邏輯上
有需要確保某些字段必須有
7. multiValued=”true”
這個配置不是說某個域中term是單一or 多個的意義。即使mulitValued=false,一個text域同時可以是很長的
一段文本,也就是很多term的情況。multiValued=”true”真正含義是:在傳入doc建索引的時候,當(dāng)一個域
是mulitValued=”true”,那么可以向該域繼續(xù)add內(nèi)容。等價在一個doc中,相同域名的key:value 可以有
多個。通常情況下,使用map,key也就唯一了,不會出現(xiàn)多個相同key,不同value的情況。
另外,配置了mulitValued=”true”,在命中返回文檔的時候,返回的是list,而不是單個對象。
在終搜目前的建索引集中下,這個multiValued 配與不配已經(jīng)沒有任何作用影響dump過程,只是在命中返回的時候
返回的是list or 單個對象。
深入提示,multiValued=”true” 在建索引的時候,實(shí)際上開辟了一個新的域,允許域名相同的域多次出現(xiàn)。
查詢的時候會查詢所有域名相同的域,這樣導(dǎo)致檢索性能會有一定影響,特別是域名膨脹之后,影響非常明顯。
8.特殊分詞
對應(yīng)提出# ; : 等分詞,其實(shí)建議統(tǒng)一轉(zhuǎn)化為空格分詞,這是系統(tǒng)原生的分詞,并且是基于編譯器層的分詞,性能更好。
沒有必要為了一個#,重新定制一份代碼,部署起來。
9. 排序、區(qū)間、一般查詢
排序的應(yīng)該是數(shù)字類型,建議使用trie類型,老的sortable 也是支持的
區(qū)間的也應(yīng)該是數(shù)字類型的,建議使用tried類型
一般查詢的多個數(shù)字組合的話,建議將數(shù)字字符化,然后空格分開,目前不支持?jǐn)?shù)字類型的數(shù)組
10. date tdate等類型
在配置data tdate等類型的時候,需要注意時間格式。
另外,不推薦直接保存,而是保存差值后的int類型等。
由于data精度控制不同,將使得所用data域的term成線性增長,這是相當(dāng)恐怕的事情。
這個長尾將消耗非常大的內(nèi)存、空間資源。
在索引中term線性的增長是相當(dāng)恐怖的事情。對長尾的處理目前還沒有特殊優(yōu)化。
通用在索引中term聚集性的增長也是相當(dāng)恐怖的事情,對長鏈處理目前也沒有特殊優(yōu)化。
11.高級活
自我校驗(yàn)schema質(zhì)量。
當(dāng)schema配置完畢了,可以采取terminatorquickstart 測試一下,然后luke工具查看下索引結(jié)構(gòu)。
這樣可能會發(fā)現(xiàn)一些問題??赡芎芏嗟胤降慕Y(jié)構(gòu)可以嘗試優(yōu)化。
到此,關(guān)于“Solr schema怎么編寫”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
名稱欄目:Solrschema怎么編寫-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article28/dedjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站改版、虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容