久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Solr schema怎么編寫

139次閱讀
沒有評論

共計 2564 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章主要介紹“Solr schema 怎么編寫”,在日常操作中,相信很多人在 Solr schema 怎么編寫問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Solr schema 怎么編寫”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

1.uniquekey 作用:當 add doc 的時候,配置了 uniqueKey,后面的 doc 中 uniqueKey 相同的會覆蓋之前的 doc,

如果沒有配置,那么將不會覆蓋。update 的時候,依據(jù) uniqueryKey 信息的話,

所以有 update 還是建議配上 uniqueKey,一來比較完整配置信息,二來數(shù)據(jù)排查也方便。

對應 id 這個域,必須 stored=true、indexed=true,類型建議使用 long 或者 int,而不是 string

如果有特殊場景需要按 id 排序的,就的使用 TriedLongField,否則排序時候會按文本序排序。

2. defaultSearchField, 故名思議就是默認查詢的時候,查什么域。這句的用法體現(xiàn)在:

queryStr= content:abc 123,  等價 queryStr= content:abc title:123

queryStr= 123 等價 queryStr= title:123

也就是說等查詢的時候,沒有指定查那個域,默認就對應 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。因為這些基本類型就一個值,無需什么分詞。

對與 int long fload Field,不應該出現(xiàn) positionincrmentGap=100

對與 tint tlong tdoube 才有 pricisionStep、positionIncrementGap、sortMissingLast=”true”屬性。

4. 配置分詞

所有 TextField 才有機會分詞

所有 TextField 才有機會執(zhí)行 facet

所有 TextField 配置的 omitTermFreqAndPositions=”true”才會起效果,排序中頻率位置信息沒了

5. omitNorms=”true”這個參數(shù)影響域的得分,去掉之后,使得長短域相同詞得分一致。按照香濃原理,

某個詞出現(xiàn)在更長的文本中,或者出現(xiàn)次數(shù)越多,信息值更低。對應如果 omitNorms=false,那么

下面 淘寶 出現(xiàn) doc1 淘寶杭州 出現(xiàn) doc2 淘寶杭州網(wǎng)絡有限公司,命中淘寶的時候,doc1 得分高于 doc2

注意:只有有一個域的 omitNorms=”false”, 等價所有域都保留了 omitNorms 這個位置,盡管 omitNorms 內(nèi)容是空,

所有,omitNorms 在所有域都 omitNorms=“true”的時候,才對索引有幫助。

6. required=”true”

這個屬性是說,一旦 scham 中該域啟用 required=“true”, 那么建索引的時候,這個域時不能為空的,這個 doc 認為不完

整。當前走 dump 中心,會對 null 的賦值為””, 也就不會出現(xiàn)沒有值的情況。但是 schema 中還是應該突出下,如果邏輯上

有需要確保某些字段必須有

7. multiValued=”true”

這個配置不是說某個域中 term 是單一 or 多個的意義。即使 mulitValued=false,一個 text 域同時可以是很長的

一段文本,也就是很多 term 的情況。multiValued=”true”真正含義是:在傳入 doc 建索引的時候,當一個域

是 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”在建索引的時候,實際上開辟了一個新的域,允許域名相同的域多次出現(xiàn)。

查詢的時候會查詢所有域名相同的域,這樣導致檢索性能會有一定影響,特別是域名膨脹之后,影響非常明顯。

8. 特殊分詞

對應提出#;:等分詞,其實建議統(tǒng)一轉(zhuǎn)化為空格分詞,這是系統(tǒng)原生的分詞,并且是基于編譯器層的分詞,性能更好。

沒有必要為了一個 #,重新定制一份代碼,部署起來。

9. 排序、區(qū)間、一般查詢

排序的應該是數(shù)字類型,建議使用 trie 類型,老的 sortable 也是支持的

區(qū)間的也應該是數(shù)字類型的,建議使用 tried 類型

一般查詢的多個數(shù)字組合的話,建議將數(shù)字字符化,然后空格分開,目前不支持數(shù)字類型的數(shù)組

10. date tdate 等類型

在配置 data tdate 等類型的時候,需要注意時間格式。

另外,不推薦直接保存,而是保存差值后的 int 類型等。

由于 data 精度控制不同,將使得所用 data 域的 term 成線性增長,這是相當恐怕的事情。

這個長尾將消耗非常大的內(nèi)存、空間資源。

在索引中 term 線性的增長是相當恐怖的事情。對長尾的處理目前還沒有特殊優(yōu)化。

通用在索引中 term 聚集性的增長也是相當恐怖的事情,對長鏈處理目前也沒有特殊優(yōu)化。

11. 高級活

自我校驗 schema 質(zhì)量。

當 schema 配置完畢了,可以采取 terminatorquickstart 測試一下,然后 luke 工具查看下索引結構。

這樣可能會發(fā)現(xiàn)一些問題。可能很多地方的結構可以嘗試優(yōu)化。

到此,關于“Solr schema 怎么編寫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-07-24發(fā)表,共計2564字。
轉(zhuǎn)載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 济宁市| 襄汾县| 黎平县| 乐亭县| 徐州市| 堆龙德庆县| 吕梁市| 札达县| 朔州市| 确山县| 高邮市| 红河县| 和田市| 东阿县| 化德县| 锦州市| 海兴县| 诏安县| 洱源县| 绥宁县| 长乐市| 涪陵区| 金山区| 油尖旺区| 玛曲县| 乌拉特后旗| 广河县| 华池县| 延长县| 枞阳县| 嫩江县| 紫云| 安阳市| 神木县| 田阳县| 新建县| 巧家县| 板桥市| 永嘉县| 文昌市| 民县|