2011-12-20 38 views
4

我在過去的3天裏被卡住了ClobTransformer。我想將一個oracle clob字段轉換爲solr中的文本字段。我使用多個內核,並從頭開始配置和架構文件。solr clobtransfomer

這是我的配置文件:

<lib dir="../../../dist/" regex="apache-solr-dataimporthandler-.*\.jar" /> 

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

這些都是在爲我的核心架構文件中的列:

<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/> 
<field name="mandp" type="text_en_splitting" indexed="true" stored="true" multiValued="false" /> 

這是我的核心數據-config.xml中:

<dataConfig> 
    <dataSource type="JdbcDataSource" 
       driver="oracle.jdbc.driver.OracleDriver" 
       url="jdbc:oracle:thin:@***" 
       user="***" 
       password="****"/> 
    <document> 
     <entity name="wiki" transformer="ClobTransformer" 
       query="Select t.id as id, t.mandp From table1 t"> 
      <field column="mandp" name="mandp" clob="true" /> 
     </entity> 
    </document> 
</dataConfig> 

當我啓動solr時,可以看到dataimporthandler * .jar文件已成功加載到控制檯中。當我從http://localhost:8983/solr/wiki/dataimport?command=full-import&clean=false運行我的數據導入時,在控制檯中看不到任何錯誤,我也看不到任何與變壓器或clob相關的任何錯誤。所以,如果我在我的變壓器參數(變壓器=「bla bla」)中輸入任何內容,它不會在控制檯中引發任何錯誤,這可能意味着我的變壓器參數完全被忽略,或者完全記錄被關閉。

當我查詢solr時,我在mandp字段中看到[email protected]。當然,如果我也使用HTMLStripTransformer類,那什麼都不會發生。我想在這個領域使用兩個。

任何想法都讚賞!

回答

4

它看起來像ClobTransformer沒有被解僱。我個人改變mandp列名稱的查詢中是這樣的:

Select t.id as id, t.mandp as mandp From table1 t 
+0

我改變了我的查詢「選擇id,mandp從table1「。這沒有什麼區別。 – 2011-12-21 15:00:21

+2

找到發生了什麼,這是列案例不匹配。 Oracle將ID轉換爲ID並將mandp轉換爲MANDP。所以,從來沒有找到字段匹配,因此clob =「true」沒有被應用(我知道在solr案例中必須匹配,但我忘記oracle會默認將所有列轉換爲大寫) – 2011-12-21 16:56:12

+1

是啊,對,我也忘了。我不是那麼遠......它必須是與列名相關的東西。 – javanna 2011-12-21 18:14:11

-1

請加變壓器=「ClobTransformer,RegexTransformer」的實體數據-config.xml文件