solr以及ik分詞器簡介
-
介紹
1、solr簡介
Solr是一個基於Lucene的Java搜尋引擎伺服器。Solr 提供了層面搜尋、命中醒目顯示並且支援多種輸出格式(包括 XML/XSLT 和 JSON 格式)。它易於安裝和配置,而且附帶了一個基於 HTTP 的管理介面。Solr已經在眾多大型的網站中使用,較為成熟和穩定。Solr 包裝並擴充套件了 Lucene,所以Solr的基本上沿用了Lucene的相關術語。更重要的是,Solr 建立的索引與 Lucene 搜尋引擎庫完全相容。通過對Solr 進行適當的配置,某些情況下可能需要進行編碼,Solr 可以閱讀和使用構建到其他 Lucene 應用程式中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 建立的索引。1.1、什麼是lucene?
Lucene是一個基於Java的全文資訊檢索工具包,它不是一個完整的搜尋應用程式,而是為 你的應用程式提供索引和搜尋功能。Lucene 目前是 Apache Jakarta(雅加達) 家族中的一個開源專案。也是目前最為流行的基於Java開源全文檢索工具包。目前已經有很多應用程式的搜尋功能是基於 Lucene ,比如Eclipse 幫助系統的搜尋功能。Lucene能夠為文字型別的資料建立索引,所以你只要把你要索引的資料格式轉化的文字格式,Lucene 就能對你的文件進行索引和搜尋。1.2、lucene和solr是什麼關係?
Solr與Lucene 並不是競爭對立關係,恰恰相反Solr 依存於Lucene,因為Solr底層的核心技術是使用Lucene 來實現的,Solr和Lucene的本質區別有以下三點:搜尋伺服器,企業級和管理。Lucene本質上是搜尋庫,不是獨立的應用程式,而Solr是。 Lucene專注於搜尋底層的建設,而Solr專注於企業應用。Lucene不負責支撐搜尋服務所必須的管理,而Solr負責。所以說,一句話概括 Solr: Solr是Lucene面向企業搜尋應用的擴充套件。 Solr使用Lucene並且擴充套件了它!- 一個真正的擁有動態欄位(Dynamic Field)和唯一鍵(Unique Key)的資料模式(Data Schema)
- 對Lucene查詢語言的強大擴充套件!
- 支援對結果進行動態的分組和過濾
- 高階的,可配置的文字分析
- 高度可配置和可擴充套件的快取機制
- 效能優化
- 支援通過XML進行外部配置
- 擁有一個管理介面
- 可監控的日誌
- 支援高速增量式更新(Fast incremental Updates)和快照發布(Snapshot Distribution)
2、Solr安裝,配置
Solr是一個Web應用,需要部署在Servlet容器中執行,本例使用Tomcat作為Servlet容器(官方釋出包中示例使用Jetty) 1:下載solr釋出包(本文件以solr4.9為例進行說明) 官網地址:http://lucene.apache.org/solr/ 選擇Past versions標紅的地方,選擇需要使用的solr釋出包,點選下載,或者複製下載地址到迅雷下載都行。 2:解壓下載的釋出包,將solr\solr-4.9.0\example\webapps下的solr.war拷貝到tomcat的webapp目錄下,啟動tomcat(解壓solr.war) 3:在任意位置建立solr_home目錄,比如:E:/solr/solr_home 4:在tomcat的webapp的solr專案中修改web.xml檔案,新增如下配置,預設是註釋的 <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:/solr/solr_home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> 5:在解壓的solr-4.9.0目錄的如下地址中solr-4.9.0/example/solr/將裡面的所有內容copy到solr_home中 6:將solr-4.9.0\example\lib\ext下的所有的jar包拷貝到apache-tomcat-7.0.54\webapps\solr\WEB-INF\lib下啟動tomcat。 如果啟動報錯,檢查你的tomcat使用的jdk,需要使用jdk1.7+才行。 7:啟動成功後,在瀏覽器中輸入http://localhost:2222/solr 檢查是否能夠訪問。訪問成功後頁面如下: 參考地址: 1:http://my.oschina.net/xiaoen/blog/343816 2:http://blog.csdn.net/zhyh1986/article/details/98561153、IK分詞器安裝,配置
1:下載地址:http://git.oschina.net/wltea/IK-Analyzer-2012FF 2:解壓IK Analyzer 2012FF_hf1.zip,獲得IK Analyzer 2012FF_hf1。將該目錄下的IKAnalyzer.cfg.xml,stopword.dic放到之前安裝 TOMCAT_HOME/webapps/solr/WEB-INF/classes目錄下(沒有就建立classes資料夾) IKAnalyzer2012FF_u1.jar放到之前安裝的TOMCAT_HOME/webapps/solr/WEB-INF/lib目錄下 3:修改/solr_home/collection1/conf/中的schema.xml中增加如下內容: <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> 同時修改filed 使filed引用text_ik.這樣才能使用IK分詞器。 <field name="name" type="text_ik" indexed="true" stored="true"/> 4:在solr應用中測試,示例如下圖: 5:修改E:\solr\solr_home\collection1\conf\solrconfig.xml檔案配置生成的索引檔案路徑,示例如下: <dataDir>${solr.data.dir:E:/solr/solr_home/data}</dataDir>4、solrj查詢介面
1:HttpSolrServer 2:SolrInputDocument 3:SolrQuery 4:QueryResponse 5:SolrDocumentList5、solr在jetty伺服器上執行
1:確保你的機器上已經安裝了jdk1.6+ 2:使用java –version 檢視你的jdk版本 3:cmd後進入solr的解壓目錄,進入example例如:E:\solr\solr-4.9.0\example 4:使用java –jar start.jar啟動jetty伺服器 5:在瀏覽器位址列中輸入:http://localhost:8983/solr 檢視是否啟動成功。 6:當啟動樣例伺服器的時候,並不會產生太多的問題。最常見的導致伺服器不能啟動的問題是預設的 8983 埠已經被另外的程式佔用。如果是這個問題的話,將會看到類似“java.net.BindException: Address already in use”這樣的異常資訊。這個問題很容易解決,只需要改變 Solr 繫結的埠即可。改變埠可以在啟動的時候通過命令列指定 Jetty 使用的埠:java -Djetty.port=8080 -jar start.jar。使用這個命令後,Jetty 將繫結到 8080 埠。 7:停止 Solr 如果是本地操作,那麼你可以在命令列視窗使用 Ctrl-c 來結束程式。通常,對於開發和測試來說,這已經足夠安全。Jetty 也提供了一個更安全的機制來停止伺服器,這個我們以後再討論。6、專案引入Solr時應該考慮的一些問題
1、資料更新頻率:每天資料增量有多大,隨時更新還是定時更新 2、資料總量:資料要儲存多長時間 3、一致性要求:期望多長時間內看到更新的資料,最長允許多長時間延遲 4、資料特點:資料來源包括哪些,平均單條記錄大小 5、業務特點:有哪些排序要求,檢索條件 6、資源複用:已有的硬體配置是怎樣的,是否有升級計劃-
參考
檢視原文:http://surenpi.com/2017/04/28/solr%e4%bb%a5%e5%8f%8aik%e5%88%86%e8%af%8d%e5%99%a8%e7%ae%80%e4%bb%8b/
相關文章
- Elasticsearch IK分詞器Elasticsearch分詞
- #Elasticsearch中文分詞器 #IK分詞器 @FDDLCElasticsearch中文分詞
- Solr:Slor初識(概述、Windows版本的安裝、新增IK分詞器)SolrWindows分詞
- IK 分詞器外掛分詞
- solrcloud4.9新增IK分詞器SolrCloud分詞
- ElasticSearch-IK分詞器和整合使用Elasticsearch分詞
- elasticsearch安裝和使用ik分詞器Elasticsearch分詞
- ElasticSearch中使用ik分詞器進行實現分詞操作Elasticsearch分詞
- elasticsearch之ik分詞器和自定義詞庫實現Elasticsearch分詞
- 使用Docker快速安裝部署ES和Kibana並配置IK中文分詞器以及自定義分詞擴充詞庫Docker中文分詞
- solr8.6.2 客戶端介面介紹及配置中文分詞器Solr客戶端中文分詞
- 如何在laradock中安裝ik分詞器分詞
- ElasticSearch5.6.1 + 中文分詞(IK)ElasticsearchH5中文分詞
- Elasticsearch學習系列一(部署和配置IK分詞器)Elasticsearch分詞
- ElasticSearch安裝ik分詞外掛Elasticsearch分詞
- solr搜尋分詞優化Solr分詞優化
- ElasticSearch(四) ElasticSearch中文分詞外掛IK的簡單測試Elasticsearch中文分詞
- ElasticSearch7.3學習(十五)----中文分詞器(IK Analyzer)及自定義詞庫Elasticsearch中文分詞
- ElasticSearch安裝中文分詞外掛IKElasticsearch中文分詞
- ES[7.6.x]學習筆記(七)IK中文分詞器筆記中文分詞
- 自己動手製作elasticsearch的ik分詞器的Docker映象Elasticsearch分詞Docker
- ElasticSearch7.6.2在windows上如何配置ik分詞器與用法ElasticsearchWindows分詞
- Solr學習筆記(三):分詞Solr筆記分詞
- pyhanlp 中文詞性標註與分詞簡介HanLP詞性標註分詞
- FlinkSQL使用自定義UDTF函式行轉列-IK分詞器SQL函式分詞
- HanLP分類模組的分詞器介紹HanLP分詞
- solr 7.0 tomcat 安裝配置 + 中文分詞SolrTomcat中文分詞
- .Net 下 Solr 入門學習系列(一)Solr簡介Solr
- Lucene的IK分詞器學習,增加支援單個特殊符號搜尋分詞符號
- Helm3安裝帶有ik分詞的ElasticSearch分詞Elasticsearch
- ElasticSearch(三) ElasticSearch中文分詞外掛IK的安裝Elasticsearch中文分詞
- 41_初識搜尋引擎_分詞器的內部組成到底是什麼,以及內建分詞器的介紹分詞
- 小白折騰伺服器(十):docker 下安裝 Elasticsearch+ik 分詞外掛伺服器DockerElasticsearch分詞
- Elasticsearch使用系列-ES增刪查改基本操作+ik分詞Elasticsearch分詞
- [教程三] 寫一個搜尋:自定義詞庫;使用 Laravel Scout,Elasticsearch,ik 分詞LaravelElasticsearch分詞
- [教程一] 寫一個搜尋:使用 Laravel Scout,Elasticsearch,ik 分詞LaravelElasticsearch分詞
- 62_索引管理_快速上機動手實戰修改分詞器以及定製自己的分詞器索引分詞
- Elasticsearch 分詞器Elasticsearch分詞