技術(shù)7.1關(guān)于solr schema.xml和solrconfig的解釋_第1頁(yè)
技術(shù)7.1關(guān)于solr schema.xml和solrconfig的解釋_第2頁(yè)
技術(shù)7.1關(guān)于solr schema.xml和solrconfig的解釋_第3頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、關(guān)于solr schema.xml 和solrconfig.xml的解釋 - CONAN ZONE - BlogJava筆記本:技術(shù)資料創(chuàng)建時(shí)間:2015/2/2 14:15 URL:關(guān)于solr schema.xml 和solrconfig.xml的解釋一、字段配置(schema)schema.xml位于solr/conf/目錄下,類似于數(shù)據(jù)表配置文件,定義了加入索引的數(shù)據(jù)的數(shù)據(jù)類型,主要包括type、fields和其他的一些缺省設(shè)置。1、先來(lái)看下type節(jié)點(diǎn),這里面定義FieldType子節(jié)點(diǎn),包括name,class,等一些參數(shù)。itionIncrementGapname:就是這個(gè)Fie

2、ldType的名稱。class:指向?yàn)?。ysis包里面對(duì)應(yīng)的class名稱,用來(lái)定義這個(gè)類型的行.apache.solr.1.2.3. schema name = exle ver= 1.2 class = solr.TrieDoubleField preci.必要的時(shí)候fieldType還需要自己定義這個(gè)類型的數(shù)據(jù)在建立索引和進(jìn)行查詢的時(shí)候要使用的分析器yzer,包括分詞和過(guò)濾,如下:view plain pr?1.itionIncrementGap =.6.itionIncrementGap = 1007.8.ysis包并沒(méi)有帶支持中文的包,需要自己添加中文分詞器,10.11

3、.3.34.35.!-itionIncrements = true filterclass = solr.SnowballPorterFilterFactory language = Englishprotected = protwords.txt /yzer type = query 2.43.itionIncrements = true class = solr.LowerCaseFilterFactory /class =

4、solr.SnowballPorterFilterFactory language = Englishprotected = protwords.txt / filter filter2、再來(lái)看下fields節(jié)點(diǎn)內(nèi)定義具體的字段(類似數(shù)據(jù)庫(kù)的字段),含有以下屬性:name:字段名type:之前定義過(guò)的各種FieldType indexed:是否被索引stored:是否被(如果不需要相應(yīng)字段值,盡量設(shè)為false)multiValued:是否有多個(gè)值(對(duì)可能存在多值的字段盡量設(shè)置為true,避免建索引時(shí)拋出錯(cuò)誤)view plain pr?.. field field

5、 field field field name = summary type = text indexed = true stored = true / name = author type = string indexed = true stored = true / name = date type = date indexed = false stored = true / name = content type = text indexed = true stored = false / name = keywords type = keyword_text indexed = tru

6、e stored =false multiValued = true /、建議建立一個(gè)拷貝字段,將所有的 全文本 字段索:到一個(gè)字段中,以便進(jìn)行的檢以下是拷貝設(shè)置:view plain pr?4、動(dòng)態(tài)字段,沒(méi)有具體名稱的字段,用dynamicField字段如:name為*_i,定義它的type為,那么在使用這個(gè)字段的時(shí)候,任務(wù)以_i結(jié)果的字段都被認(rèn)為符合這個(gè)定義。如name_i, school_iview plain pr?1.name = *_itype = indexed = truestored = = *_stype = stringindexe

7、d = truestored = = *_ltype = longindexed = truestored = = *_ttype = textindexed = truestored = = *_btype = indexed = truestored =6.name = *_ftype = floatindexed = truestored = = *_dtype = double indexed = truestored = = *_dttype = dateindexed =

8、truestored = trueschema.xml文檔注釋中的信息:1、為了改進(jìn)性能,可以采取以下幾種措施:將所有只用于搜索的,而不需要作為結(jié)果的field(特別是一些比較大的field)的stored設(shè)置為false將不需要被用于搜索的,而只是作為結(jié)果返回的field的indexed設(shè)置為false刪除所有不必要的copyField為了索引字段的最小化和搜索的效率,將所有的 text fields的index都設(shè)置成field,然后使用copyField將他們都到一個(gè)總的 text field上,然后對(duì)他進(jìn)行搜索。為了最大化搜索效率,使用java編寫的客戶端與solr交互(使用流通信)在

9、服務(wù)器端運(yùn)行JVM(省去網(wǎng)絡(luò)通信),使用盡可能高的Log輸出等級(jí),減少日志量。2、name:標(biāo)識(shí)這個(gè)schema的名字ver:現(xiàn)在版本是1.23、filedTypename:標(biāo)識(shí)而已。class和其他屬性決定了這個(gè)fieldType的實(shí)際行為。(class以solr開(kāi)始的,都是在.appache.solr.ysis包下)可選的屬性:sortMissingLast和sortMissing兩個(gè)屬性是用在可以內(nèi)在使用String排序的類型上(包括:string,s,slong,sfloat,sdouble,pdate)。sortMissingLast=true,沒(méi)有該field的數(shù)據(jù)排在有該fiel

10、d的數(shù)據(jù)之后,而不管請(qǐng)求時(shí)的排序規(guī)則。sortMissing=true,跟上面倒過(guò)來(lái)唄。2個(gè)值默認(rèn)是設(shè)置成falseStrField類型不被分析,而是被逐字地索引/。StrField和TextField都有一個(gè)可選的屬性“compressThreshold”,保證壓縮到不小于一個(gè)大?。ǎ篶har)solr.TextField 允許用戶通過(guò)分析器來(lái)定制索引和查詢,分析器包括一個(gè)分詞器(tokenizer)和多個(gè)過(guò)濾器(filter)itionIncrementGap:可選屬性,定義在同一個(gè)文檔中此類型數(shù)據(jù)的空白間隔,避免短語(yǔ)匹配錯(cuò)誤。字段類型名java類名缺省true。 說(shuō)明這個(gè)數(shù)據(jù)應(yīng)被搜索和排

11、序,如果數(shù)據(jù)沒(méi)有indexed,則stored應(yīng)是name: class:indexed: true。 stored:缺省true。說(shuō)明這個(gè)字段被包含在搜索結(jié)果中是合適的。如果數(shù)據(jù)沒(méi)有stored,則indexed應(yīng)是true。 sortMissingLast:面指沒(méi)有該指定字段數(shù)據(jù)的排在有該指定字段數(shù)據(jù)的的后指沒(méi)有該指定字段數(shù)據(jù)的排在有該指定字段數(shù)據(jù)的的前sortMissing面omitNorms:字段的長(zhǎng)度不影響得分和在索引時(shí)不做boost時(shí),設(shè)置它為true。一般文本字段不設(shè)置為true。termVectors:如果字段被用來(lái)做more like this 和highlight的特性時(shí)應(yīng)

12、設(shè)置為true。字段是壓縮的。這可能導(dǎo)致索引和搜索變慢,但會(huì)減少空間,只有compressed:StrField和TextField是可以壓縮,這通常適合字段的長(zhǎng)度超過(guò)200個(gè)字符。multiValued:字段多于一個(gè)值的時(shí)候,可設(shè)置為true。itionIncrementGap:和multiValued一起使用,設(shè)置多個(gè)值之間的虛擬空白的數(shù)量空格分詞,精確匹配。在分詞和匹配時(shí),考慮 -連字符,字母數(shù)字的界限,非字母數(shù)字字符,這樣 wifi或wi fi都能匹配Wi-Fi。同義詞在禁用字(stopword)刪除后,在短語(yǔ)間增加間隔stopword:即在建立索引過(guò)程中(建立索引和搜索)被忽略的詞,

13、比如is this等常用詞。在。conf/stopwords.txt4、fieldsname:標(biāo)識(shí)而已。 type:先前定義的類型。indexed:是否被用來(lái)建立索引(關(guān)系到搜索和排序) stored:是否compressed:false,是否使用gzip壓縮(只有TextField和StrField可以壓縮) mutiValued:是否包含多個(gè)值omitNorms:是否忽略掉Norm,可以節(jié)省內(nèi)存空間,只有全文本field和need an index-time boost的field需要norm。(具體沒(méi)看懂,注釋里有)termVectors:false,當(dāng)設(shè)置true,會(huì)term vect

14、or。當(dāng)使用MoreLikeThis,用來(lái)作為相似詞的field應(yīng)該起來(lái)。termitions: termOffsets:term vector中的地址信息,會(huì)消耗開(kāi)銷。term vector 的偏移量,會(huì)消耗開(kāi)銷。default:如果沒(méi)有屬性需要修改,就可以用這個(gè)標(biāo)識(shí)下。包羅萬(wàn)象(有點(diǎn)夸張)的field,包含所有可搜索的text fields,通過(guò)copyField實(shí)現(xiàn)。在添加索引時(shí),將所有被拷貝field(如cat)中的數(shù)據(jù)拷貝到text field中作用:將多個(gè)field的數(shù)據(jù)放在一起同時(shí)搜索,提供速度將一個(gè)field的數(shù)據(jù)拷貝到另一個(gè),可以用2種不同的方式來(lái)建立索引。如果一個(gè)field

15、的名字沒(méi)有匹配到,那么就會(huì)用動(dòng)態(tài)field試圖匹配定義的各種模式。*只能出現(xiàn)在模式的最前和最后較長(zhǎng)的模式會(huì)被先去做匹配如果2個(gè)模式同時(shí)匹配上,最先定義的優(yōu)先如果通過(guò)上面的匹配都沒(méi)找到,可以定義這個(gè),然后定義個(gè)type,當(dāng)String處理。(一般不會(huì)發(fā)生)但若不定義,找不到匹配會(huì)報(bào)錯(cuò)。5、其他一些 id 文檔的唯一標(biāo)識(shí), 必須填寫這個(gè)field(除非該field被標(biāo)記required=false),否則solr建立索引報(bào)錯(cuò)。 text 如果搜索參數(shù)中沒(méi)有指定具體的field,那么這是默認(rèn)的域。配置搜索參數(shù)短語(yǔ)間的邏輯,可以是AND|OR。二、solrconfig.xml1、索引配置mainInd

16、ex 標(biāo)記段定義了控制Solr索引處理的一些poundFile:通過(guò)將很多 Lucene.整合到單一一個(gè)文件來(lái)減少使用中的文件的數(shù)量。這可有助于減少 Solr 使用的文件句柄數(shù)目,代價(jià)是降低了性能。除非是應(yīng)用程序用完了文件句柄,否則 false 的默認(rèn)值應(yīng)該就已經(jīng)足夠。poundFile:通過(guò)將很多Lucene整合到一個(gè)文件,來(lái)減少使用中的文件的數(shù)量。這可有助于減少Solr使用的文件句柄的數(shù)目,代價(jià)是降低了性能。除非是應(yīng)用程序用完了文件句柄,否則false的默認(rèn)值應(yīng)該就已經(jīng)足夠了。mergeFacor:決定Lucene段被合并的頻率。較小的值(最小為2)使用的內(nèi)存較少但導(dǎo)致的索引時(shí)間也更慢。較

17、大的值可使索引時(shí)間變快但會(huì)犧牲較多的內(nèi)存。(典型的時(shí)間與空間 的平衡配置)maxBufferedDocs:在合并內(nèi)存中文檔和創(chuàng)建新段之前,定義所需索引的最小文檔數(shù)。段是用來(lái)索引信息的Lucene文件。較大的值可使索引時(shí)間變快但會(huì)犧牲較多內(nèi)存。maxMergeDocs:控制可由Solr合并的適合于具有大量更新的應(yīng)用程序。 maxFieldLength:對(duì)于給定的的最大數(shù)。較小的值(10,000)最,控制可添加到Field的最大條目數(shù),進(jìn)而階段該文檔。如果文檔可能會(huì)很大,就需要增加這個(gè)數(shù)值。然后,若將這個(gè)值設(shè)置得過(guò)高會(huì)導(dǎo)致內(nèi)存錯(cuò)誤。unlockOnStartup:告知Solr忽略在多線程環(huán)境中用來(lái)

18、保護(hù)索引的鎖定機(jī)制。在某些情況下,索引可能會(huì)由于不正確的關(guān)機(jī)或其他錯(cuò)誤而一直處于鎖定,這就妨礙了添加和更 新。將其設(shè)置為true可以禁用啟動(dòng)索引,進(jìn)而允許進(jìn)行添加和更新。(鎖機(jī)制)2、查詢處理配置query標(biāo)記段中以下一些與緩存無(wú)關(guān)的特性:Clauses:定義可組合在一起形成以個(gè)查詢的字句數(shù)量的上限。正常情況max1024已經(jīng)足夠。如果應(yīng)用程序大量使用了通配符或范圍查詢,增加這個(gè)限制將能避免當(dāng)值超出時(shí),拋出TooMangClausesException。enableLazyFieldLoading:如果應(yīng)用程序只會(huì)檢索將這個(gè)屬性設(shè)置為 true。懶散加載的一個(gè)常見(jiàn)場(chǎng)景大都發(fā)生在應(yīng)用程序返回一些

19、列搜上少數(shù)幾個(gè)Field,那么可以索結(jié)果的時(shí)候,用戶常常會(huì)單擊其中的一個(gè)來(lái)查看在此索引中的原始文檔。初始的現(xiàn)實(shí)常常只需要現(xiàn)實(shí)很短的一段信息。若是檢索大型的應(yīng)該避免加載整個(gè)文檔。,除非必需,否則就query部分負(fù)責(zé)定義與在Solr中發(fā)生的時(shí)間相關(guān)的幾個(gè)選項(xiàng):概念:Solr(實(shí)際上是Lucene)使用稱為Searcher的Java類來(lái)處理Query實(shí)例。Searcher將索引內(nèi)容相關(guān)的數(shù)據(jù)加載到內(nèi)存中。根據(jù)索引、CPU已經(jīng)可用內(nèi)存的大小,這個(gè)過(guò)程可能需要較長(zhǎng)的一段時(shí)間。要改進(jìn)這一設(shè)計(jì)和顯著提高性能,Solr引入了一張“溫暖”策略,即把這些新的 Searcher聯(lián)機(jī)以便為現(xiàn)場(chǎng)用戶提供查詢服務(wù)之前,先對(duì)它們進(jìn)行“熱身”。newSearcher和Searcher事件,可以使用這些事件來(lái)制定實(shí)例化新Searcher或第一個(gè)Searcher時(shí),應(yīng)該執(zhí)行哪些查詢。如果應(yīng)用程序期望請(qǐng)求某些特定的查詢,那么在創(chuàng)建新Searcher或第一個(gè)Searcher時(shí)就應(yīng)該反注釋這些部分并執(zhí)行適當(dāng)?shù)牟樵?。query中的智能緩存:filterCache:通過(guò)一個(gè)匹配給定查詢的文檔 id 的無(wú)序集,過(guò)濾器讓 Solr 能夠有效提高查詢的性能。緩存這些過(guò)濾器意味著對(duì)Solr的重復(fù)調(diào)用可以導(dǎo)致結(jié)果集的快速查 找。更

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論