1. 程式人生 > >7.跟我學solr---對檔案資料新增索引

7.跟我學solr---對檔案資料新增索引

簡介

solr可以對檔案資料進行解析,提取可索引內容進行建立索引,底層實現是依賴apache Tika的,Tika利用現有的解析類庫,從不同格式的文件中(例如HTML,PDF,Doc),偵測和提取出元資料和結構化內容,然後交由solr建立索引。

新增檔案資料索引例子

首先要保證你的solr版本在1.4以上,然後進入到進入到檔案所在的目錄,然後使用curl命令,把檔案資料新增到solr中即可。

cd site/html
curl "http://localhost:8080/solr/update/extract?literal.id=doc1&commit=true" -F "[email protected]
"
從傳送的請求中我們可以看到請求的uri為/update/extract,回顧一下前面講解提到的SolrRequestHandler,我們從solrconfig.xml檔案中找到如下配置。

喜歡鑽研的同學就可以看看ExtractingRequestHandler實現。

  <requestHandler name="/update/extract" 
                  startup="lazy"
                  class="solr.extraction.ExtractingRequestHandler" >
    <lst name="defaults">
      <str name="lowernames">true</str>
      <str name="uprefix">ignored_</str>

      <!-- capture link hrefs but ignore div attributes -->
      <str name="captureAttr">true</str>
      <str name="fmap.a">links</str>
      <str name="fmap.div">ignored_</str>
    </lst>
  </requestHandler>
另外,細心的同學可以看到提交的url中還有一個引數commit=ture。這個引數是用來告訴solr,是否提交索引,如果你是批量檔案資料,應該等所有的檔案都上傳了再傳這個commit=ture的引數,一起更新索引。

現在你就可以使用http://localhost:8080/solr/select?q=tutorial來搜尋剛才提交的資料了。

新增的過程中,可能會報錯:lazy loading error,這個報錯是由於SOLR_HOME/collection1\confs/olrconfig.xml檔案的如下配置沒有找到對應的lib目錄

  <lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
把需要的lib檔案目錄拷貝到這個相對路徑下即可,或者直接指定絕對路徑也可以,這些lib目錄可以在solr解壓的包的根目錄下找到。

使用solrj新增

當然,在平時開發中我們比較少使用命令的方式提交資料,下面為大家講解一下怎麼使用solrj提交檔案資料。沿用上面的例子,程式碼非常簡單,server物件的說明請參考前面的章節。

		ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");
		up.addFile(new File("tutorial.html"),"text/html");
		up.setParam("literal.id", "testSolrHtml001");
		up.setAction(org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION.COMMIT, true, true);
		NamedList<Object> result = server.request(up);


相關推薦

7.solr---檔案資料新增索引

簡介 solr可以對檔案資料進行解析,提取可索引內容進行建立索引,底層實現是依賴apache Tika的,Tika利用現有的解析類庫,從不同格式的文件中(例如HTML,PDF,Doc),偵測和提取出元資料和結構化內容,然後交由solr建立索引。 新增檔案資料索引例子 首先要

8.solr---UpdateRequestProcessor具體解釋

condition pos 進行 upd new factor 代碼 ren public 簡單介紹 java web開發的同學應該非常熟悉,在開發中常常會使用filter來處理請求中的一些切面需求。solr也提供類似的一種鏈式結構的handler來滿足在加入數據索引請

關於結構體(陳銳、葛麗萍 編著《資料結構》整理)

1.結構體的定義        結構體是其他lei'型別構造出來的shu'資料型別。        結構體型別(關鍵字struct表示一個結構體)的記錄:       str

二叉樹的儲存表示與實現(陳銳,葛麗萍資料結構整理)

1.二叉樹的順序儲存, 即用一維陣列按照從左到右,從上到下的順序依次儲存,分析計算可得每個節點的編號,類似於樹狀陣列。 適用於完全二叉樹。 儲存非完全二叉樹時,需要在一維陣列中將二叉樹不存在的結點位置空出,並用NULL填充。 2.二叉樹.的鏈式儲存 二叉樹的鏈式儲存結構 二叉

連結串列(陳銳、葛麗萍編著《資料結構》整理

  連結串列通過自引用結構體型別的指標成員指向結構體本身建立起來,“自引用結構體”包含一個指標成員,該指標指向與結構體一樣的型別。 struct node { int data;//整形成員 struct node *next;//指標成員 }; 自引用結構體單元

動態記憶體分配與釋放(陳銳、葛麗萍 編著《資料結構》整理)

1.malloc函式 作用:在記憶體中分配一個長度為size 的連續儲存空間,返回一個指向分配空間的起始地址的指標。          如果分配失敗,則返回NULL。 原型: void *malloc(unsigned int size)

storm教程2-並行機制及資料流分組

topology的四個組成部分 Nodes(伺服器) 即為storm叢集中的supervisor,會執行topology的一部分運算,一個storm叢集一般會有多個node workers(JVM虛擬機器) node節點上執行的相互獨立

Java多線程——線程池與堵塞隊列

信號 線程的創建 margin cit rect weight offer 成功 rain 前言 上一篇文章中我們將ThreadPoolExecutor進行了深入的學習和介紹,實際上我們在項目中應用的時候非常少有直接應用ThreadPoolExecutor來

設計模式視頻教程——管擦者模式(下),責任鏈模式(上)

tar eight color font content 設計模式 name -m ack 課程視頻 觀察者模式(下) 責任鏈模式(上) 課程筆記 課程筆記 課程代碼 課程代碼 新課程火熱報名中 課程介紹

AngularJs:Controller數據共享、繼承、通信使用具體解釋

特殊 目的 lin 部分 屬性 獲得 white line idt 林炳文Evankaka原創作品。轉載請註明出處http://blog.csdn.net/evankaka 摘要:本文主講了AngularJs中的Controller

匯編(三)寄存器和物理地址的形成

註意 con 什麽 size 單獨 既然 cpu 個數 ng- 一、通用寄存器 對於一個匯編程序猿來說,CPU中主要部件是寄存器。寄存器是CPU中程序猿能夠用指令讀寫的部件。程序猿通過改變各種寄存器的內容來實現對CPU的控制。 不同的CPU,寄存器的

ASP.NET MVC之一:開篇有益

了解 軟件 搜索引擎 路由 繼承 簡單 工廠 平臺 抽象層 摘要: ASP.NET MVC是微軟的Web開發框架,結合了模型-視圖-控制器(MVC)架構的有效性和整潔性,敏捷開發最前沿的思想和技術,以及現存的ASP.NET平臺最好的部分。它是傳統ASP.NET Web F

框架開發-簡單框架藍圖

img -1 報文格式 數據監控 統一 封裝 idt 服務 png 以下是一個簡單早期的框架結構圖,到目前為上已經作了太多的調整與進化。但基本的構件與原理不變: 個人覺得有以下幾點: 1、要有基礎框架建模平臺,這是構件化的實現基礎,也是本框架最重要的部分 2、全接口化交互,

框架開發-項目代碼結構2

images 開發 前端 logs 單純 由於 elastic 目前 tco 我的項目結構圖,當前項目是.NETCore的,是把之前的ASP.NET MVC框架作了升級轉換的(升級之後,只有PlainElastic.Net不支持,已在開源代碼上重寫) 前端:XSpot

IDEA》六、插件(編碼利器)

enable alt ins 教程 dea 點擊 ble png tel idea的另一個可愛之處,就是它的強大的插件,下面我以CodeGlance插件為例,這個可以快速定位代碼。 第一節:安裝插件  ● All plugins 顯示所有插件。  ● Enabled 顯示

Node高性能Web服務器開發

Node課程學習地址:http://www.xuetuwuyou.com/course/235課程出自學途無憂網:http://www.xuetuwuyou.com 課程主要講授了時下熱門的Node開發,內容包括但不限於:Node基本環境開發配置,Node模塊Module機制,利用Express快速搭建Nod

ASP.NET MVC之四:使用Razor

ima pre 技術分享 C# 圖模型 med 執行 sys fonts 摘要: 視圖引擎處理ASP.NET內容,並查找指令,典型情況是向瀏覽器輸出插入動態內容。MVC框架視圖引擎的名字是Razor。 在本文中,我將帶領讀者快速認識Razor,以後你們看到他們的時候能夠

ASP.NET MVC之七:SportsStrore購物車

repos ras img sports collect dev PC RM VC 摘要: SportsStore應用程序進展很順利,但是我不能銷售產品直到設計了一個購物車。在這篇文章裏,我就將創建一個購物車。 在目錄下的每個產品旁邊添加一個添加到購物車按鈕。點擊這個按

ASP.NET MVC之八:SportsStrore移動設備

ima 支持 web瀏覽器 css 客戶端瀏覽器 nts oat 重新 menu 摘要: 現在的web程序開發避免不了智能手機和平板電腦上的使用,如果你希望發布你的應用程序給更廣大客戶使用的話,你將要擁抱可移動web瀏覽器的世界。向移動設備用戶發布一個好的使用體驗是很困難

Shiro實踐-簡單的認證授權

pass 哪些 .com jin 怎麽 don AR ejb from 本文是基於張開濤老師的跟我學Shiro系列的個人實踐。幾個月前過了一遍張開濤的跟我學Shiro系列,因為沒有實踐,基本上又全部還給開濤老師了。趁著假期,這次準備將開濤老師的講解實踐一遍。當然本人的實踐不