共計 4203 個字符,預計需要花費 11 分鐘才能閱讀完成。
這篇文章主要講解了“solr 自動聚類怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“solr 自動聚類怎么實現”吧!
Solr 使用 Carrot2 完成了聚類功能, 能夠把檢索到的內容自動分類, Carrot2 聚類示例:
要想 Solr 支持聚類功能, 首選要把 Solr 發行包的中的 dist/ solr-clustering-4.2.0.jar, 復制到 \solr\contrib\analysis-extras\lib 下. 然后打開 solrconfig.xml 進行添加配置:
searchComponent name= clustering
enable= ${solr.clustering.enabled:true}
>
lst name= engine
str name= name default /str
str name= carrot.algorithm org.carrot2.clustering.lingo.LingoClusteringAlgorithm /str
str name= LingoClusteringAlgorithm.desiredClusterCountBase 30 /str !–2~100–
str name= LingoClusteringAlgorithm.clusterMergingThreshold 0.70 /str !–0~1–
str name= LingoClusteringAlgorithm.scoreWeight 0 /str !–0~1–
str name= LingoClusteringAlgorithm.labelAssigner org.carrot2.clustering.lingo.SimpleLabelAssigner /str !–org.carrot2.clustering.lingo.UniqueLabelAssigner —
str name= LingoClusteringAlgorithm.phraseLabelBoost 1.5 /str !–0~10–
str name= LingoClusteringAlgorithm.phraseLengthPenaltyStart 8 /str !–2~8–
str name= LingoClusteringAlgorithm.phraseLengthPenaltyStop 8 /str !–2~8–
str name= TermDocumentMatrixReducer.factorizationQuality HIGH /str !–LOW,MEDIUM,HIGH–
!–
org.carrot2.matrix.factorization.PartialSingularValueDecompositionFactory
org.carrot2.matrix.factorization.NonnegativeMatrixFactorizationEDFactory
org.carrot2.matrix.factorization.NonnegativeMatrixFactorizationKLFactory
org.carrot2.matrix.factorization.LocalNonnegativeMatrixFactorizationFactory
org.carrot2.matrix.factorization.KMeansMatrixFactorizationFactory
—
str name= TermDocumentMatrixReducer.factorizationFactory org.carrot2.matrix.factorization.NonnegativeMatrixFactorizationEDFactory /str
str name= TermDocumentMatrixBuilder.maximumMatrixSize 37500 /str !–MinValue5000–
str name= TermDocumentMatrixBuilder.titleWordsBoost 2.0 /str !–2~10–
str name= TermDocumentMatrixBuilder.maxWordDf 0.9 /str !–0~1–
!–org.carrot2.text.vsm.LogTfIdfTermWeighting,org.carrot2.text.vsm.LinearTfIdfTermWeighting–
str name= TermDocumentMatrixBuilder.termWeighting org.carrot2.text.vsm.TfTermWeighting /str
str name= MultilingualClustering.defaultLanguage CHINESE_SIMPLIFIED /str
str name= MultilingualClustering.languageAggregationStrategy org.carrot2.text.clustering.MultilingualClustering.LanguageAggregationStrategy.FLATTEN_MAJOR_LANGUAGE /str !–FLATTEN_ALL,FLATTEN_NONE–
str name= GenitiveLabelFilter.enabled true /str
str name= StopWordLabelFilter.enabled true /str
str name= NumericLabelFilter.enabled true /str
str name= QueryLabelFilter.enabled true /str
str name= MinLengthLabelFilter.enabled true /str
str name= StopLabelFilter.enabled true /str
str name= CompleteLabelFilter.enabled true /str
str name= CompleteLabelFilter.labelOverrideThreshold 0.65 /str !–0~1–
str name= DocumentAssigner.exactPhraseAssignment false /str
str name= DocumentAssigner.minClusterSize 2 /str !–1~100–
str name= merge-resources true /str
str name= CaseNormalizer.dfThreshold 1 /str !–1~100–
str name= PhraseExtractor.dfThreshold 1 /str !–1~100–
str name= carrot.lexicalResourcesDir clustering/carrot2 /str
str name= SolrDocumentSource.solrIdFieldName id /str
/lst
/searchComponent
配好了聚類組件后, 下面配置 requestHandler:
requestHandler name= /clustering
startup= lazy
enable= ${solr.clustering.enabled:true}
>
lst name= defaults
str name= echoParams explicit /str
bool name= clustering true /bool
str name= clustering.engine default /str
bool name= clustering.results true /bool
str name= carrot.title category_s /str
str name= carrot.snippet content /str
str name= carrot.url path /str
str name= carrot.produceSummary true /str
/lst
arr name= last-components
str clustering /str
/arr
/requestHandler
有兩個參數要注意 carrot.title,carrot.snippet 是聚類的比較計算字段, 這兩個參數必須是 stored= true .carrot.title 的權重要高于 carrot.snippet, 如果只有一個做計算的字段 carrot.snippet 可以去掉 (是去掉不是值為空). 設完了用下面的 URL 就可以查詢了
http://localhost:8080/skyCore/clustering?q=*%3A* wt=xml indent=true
感謝各位的閱讀,以上就是“solr 自動聚類怎么實現”的內容了,經過本文的學習后,相信大家對 solr 自動聚類怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!