1. 程式人生 > >2018_06_21 全文檢索技術___Solr

2018_06_21 全文檢索技術___Solr

Solr主要用於對其他儲存系統中已有的資料進行分析,查詢,然後展示結果;利用solr強大的搜尋索引功能,找到自己需求的結果。

適用場景:

對於儲存在檔案中的日誌 可以匯入到solr中做分析,

對於 關係型資料庫裡需要做全文搜尋的欄位 可以匯入到slor 中

Solr安裝使用(window版):

Solr可以算作是一個獨立的java工程,所以整個例項中,需要tomcat和solr的安裝包

1.將tomcat和solr解壓到同一個目錄下。


2.把solr-4.10.3\dist目錄下的solr-4.10.3.war部署到tomcat下。把war包改名為solr.war


3.啟動tomcat,將war自動解壓,關閉tomcat,刪除solr.war

4.把\solr-4.10.3\example\lib\ext目錄下的所有的jar包新增到tomcat下的webapp中的solr工程中


5.solr的使用需要一個solrhome,solrhome就是solr伺服器所有的配置檔案存放的目錄。可以使用solr-4.10.3\example\solr目錄做為solrhome


6.

(1)、collection1目錄叫做solrcore,每個SolrCore就是一個獨立的索引庫。Solrcore之間是完全獨立的。

(2)、collection1\conf目錄下儲存的是每個索引庫的配置。兩個重要的配置檔案schema.xml、solrconfig.xml。

(3)、Solrconfig.xml

a)        luceneMatchVersion:使用的Lucene的版本號。

b)       Lib。預設的目錄是Collection1/lib目錄,如果需要新增擴充套件包,需要手工建立。

c)        dataDir:索引庫儲存的目錄。預設是Collection1/data目錄。會自動建立。如果想更改索引庫的存放目錄可以更改此配置。

7.配置solr服務,指定solrhome的位置。告訴solr服務solrhome在什麼地方。

需要修改solr工程的web.xml檔案。

web.xml中直接搜尋env-entry即可,預設是註釋的,開啟註釋,將路徑換成自己的solrhome的路徑即可



8.啟動tomcat

訪問:http://localhost:啟動tomcat的埠號/solr

9.看到以下頁面,即solr服務啟動成功!


一個solrhome中可以有多個solr core例項,


當面對一個新的solr core時,如果想使用後臺管理介面來維護索引庫,匯入幾個常用的包以及進行資料來源的配置。

否則,無法使用網頁版面對索引庫進行批量匯入索引操作。即會出現出下圖所示錯誤:


那麼如何解決這個問題呢?

首先需要配置dataimport外掛:

第一步:把dataimport外掛使用的jar包新增到collection2/lib目錄下。

所需jar包在

需要這兩個jar包,並且,還需要連線資料庫,與資料庫進行連線的驅動包,mysql或者oracle的驅動包,一同放到collection/lib下。


第二步:需要修改solrconfig.xml,在其中新增一個requestHandler。

<requestHandler name="/dataimport" 
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
  </requestHandler> 

第三步:新建一個data-config.xml和solrconfig.xml在同一個目錄下。


data-config.xml中的配置資訊

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource driver="com.mysql.jdbc.Driver"   
		  url="jdbc:mysql://localhost:3306/zzlc"   
		  user="root"   
		  password="qwQsd123456"/>   
<document>   
	<entity name="item" query="SELECT * from tb_item ">
		<field column="item_id" name="id"/> 
		 <field column="item_title" name="title"/> 
		 <field column="item_sell_point" name="sell_point"/> 
		 <field column="item_price" name="price"/> 
		 <field column="item_image" name="image"/> 
		 <field column="item_category_name" name="category_name"/> 
	</entity>   
</document>   
</dataConfig>

第四步:在schema.xml中新增對應的field欄位進行管理

<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>

新增成功後,重啟tomcat,即可看到


如果想使用IK分詞器,需要將分詞,停用詞,IK.xml新增到工程中。


下拉框中的item即為連線資料庫,將查詢出的資料放入索引庫中。

相關推薦

2018_06_21 全文檢索技術___Solr

Solr主要用於對其他儲存系統中已有的資料進行分析,查詢,然後展示結果;利用solr強大的搜尋索引功能,找到自己需求的結果。適用場景:對於儲存在檔案中的日誌 可以匯入到solr中做分析,對於 關係型資料庫裡需要做全文搜尋的欄位 可以匯入到slor 中Solr安裝使用(wind

全文檢索技術---solr

可擴展 spa start common sha https 站內搜索 請求方法 效果 1 Solr介紹 1.1 什麽是solr Solr 是Apache下的一個頂級開源項目,采用Java開發,它是基於Lucene的全文搜索服務器。Solr可以獨立運行在

lucene教程--全文檢索技術

bss bsp 詳細 .cn 總結 bbs 實例demo 技術 .net 1 Lucene 示例代碼 https://blog.csdn.net/qzqanzc/article/details/80916430 2 Lucene 4.7 學習及實例

全文檢索技術 && Lucene

1.全文檢索技術理論基礎 1.全文檢索技術的解決方案 原來的方法和實現搜尋功能的流程圖: 傳統的搜尋引擎技術,在一般資料庫資料量比較小,使用者量比較小的時候是比較常見的 但是在資料量增加到一定的量級的時候,資料庫的壓力就會變得很大,查詢的速度會很慢,我們需要更好的解決方案來分擔

全文檢索技術---Lucene(概述)

資料分類: 我們生活中的資料總體分為兩種:結構化資料和非結構化資料。         1) 結構化資料:                 指具有固定格式或有限長度的資料,如資料庫,元資料等。                 因為結構化資料的儲存一般都是有規律的,

全文檢索技術學習(三)——Lucene支援中文分詞

分析器(Analyzer)的執行過程 如下圖是語彙單元的生成過程: 從一個Reader字元流開始,建立一個基於Reader的Tokenizer分詞器,經過三個TokenFilter生成語彙單元Token。 要看分析器的分析效果,只需要看TokenStr

全文檢索技術—Solr

1、什麼是Solr Solr 是Apache下的一個頂級開源專案,採用Java開發,它是基於Lucene的全文搜尋伺服器。Solr提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件,並對索引、搜尋效能進行了優化。  Solr可以獨立執行,執行在Jetty、

solr全文檢索技術學習(三)-搭建SolrCloud叢集問題總結

  什麼是SolrCloud          SolrCloud(solr 雲)是Solr提供的分散式搜尋方案,當你需要大規模,容錯,分散式索引和檢索能力時使用 SolrCloud。當一個系統的索引資料量少的時候是不需要使用SolrCloud的,當索引量很大,搜尋請求併發

全文檢索技術與Lucene的使用

需要注意的是,建立索引和進行搜尋都是需要分詞器進行分詞的,而且,為了保證能正確的搜尋到結果,在建立索引與進行搜尋時使用的分詞器應是同一個。 由於中英文的不同,分詞器還分為 英文分詞、中文分詞以及停用詞等。英文分詞的主要流程是,輸入文字 → 關鍵詞切分 → 去除停用詞 → 形態還原 → 轉為小寫 。其中,形

全文檢索學習歷程目錄結構Lucene、ElasticSearch

wql elong f2c xiang bench ros dml bst nsh Linux%20Shell%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B%E4%B9%8B%E4%BA%8C%E7%AC%AC%E4%B8%80%E4%B8%AAS

oracle仿全文檢索切詞機制實現文本信息類似度查找

pos rom 排除 應用場景 popu ora mar 機制 一個 應用場景: 依據keyword查詢與此keyword相似的信息,當中一些keyword要排除掉比如:“有限公司”、“有限責任公司”、“股份有限公司”等

luence全文檢索(簡介)

through 提取關鍵字 dna 環境 director 中國 ade equals 關鍵字查詢 剛開始做全文檢索也是找了很多資料但是網上的都不是很齊全luence是個很不多的工具 Lucene4.0的官網文檔:http://lucene.apache.org/core/

全文檢索ES 服務啟動和關閉

eap sep ror cms nco sin head exp rac nohup ./elasticsearch & 可以後臺開啟elasticsearch服務 ps-ef列出所有進程 ps-ef | grep elastic...查找elastic。。的

[hdu1277]全文檢索(AC自動機)

數組 size using blog ans emp print 檢索 sca 解題關鍵:AC自動機模板題,註意字符匹配時若無法匹配,直接用%s即可。 1 #include<bits/stdc++.h> 2 using namespace std;

Elasticsearch全文檢索,高亮關鍵字

code spa nsh pes lds exp response sets highlight 問題 用如下這樣的term方式,可以高亮 .setQuery(QueryBuilders.termQuery("PARAM_NAME", "a")) { "query":

使用PostgreSQL進行全文檢索

搜索 -a 存在 upd key 插件 大量 交流 問題搜索 * { color: #3e3e3e } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei

MySQL中文全文檢索

arch xxxxx 異或 檢索 擁有 優秀 模糊匹配 運算 query 一、概述 MySQL全文檢索是利用查詢關鍵字和查詢列內容之間的相關度進行檢索,可以利用全文索引來提高匹配的速度。 二、語法 MATCH (col1,col2,...) AGAINS

Lucene全文檢索引擎

getname 通過 nal dem 檢索 數據庫 project cep 關閉 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch

【Sphinx】MySQL+Sphinx 全文檢索的使用和測試

sphinx mysql 增量更新索引文 導讀:最近在線上由於某些不可名狀的原因需要在數據庫中過濾一些詞語,所以線上比較多的語句都是 select c1,c2 fron tb1 where c1 like '%name%'類似與這個樣子的模糊查詢。開始想到了全文索引來進行分詞,但是又想到

Elasticsearch全文檢索工具入門

使用步驟 artifact rop 創建 是否 方式 cluster 包名 Lucene 1 Elasticsearch全文檢索工具入門: 2 1.下載對應系統版本的文件 3 elasticsearch-2.4.0.zip 4