2015-09-17 42 views
0

我正在使用solr5.3。Solr DataImportHandler沒有索引定義的所有數據

我想上傳維基百科頁面文章dump solr使用「DataImportHandler」,但我只有id和標題文件時,我查詢。

下面是我的數據-config.xml中

<dataConfig> 
     <dataSource type="FileDataSource" encoding="UTF-8" /> 
     <document> 
     <entity name="page" 
       processor="XPathEntityProcessor" 
       stream="true" 
       forEach="/mediawiki/page/" 
       url="/mnt/TEST/enwiki-20150602-pages-articles1.xml" 
       transformer="RegexTransformer,DateFormatTransformer" 
       > 
      <field column="id"  xpath="/mediawiki/page/id" /> 
      <field column="title"  xpath="/mediawiki/page/title" /> 
      <field column="revision" xpath="/mediawiki/page/revision/id" /> 
      <field column="user"  xpath="/mediawiki/page/revision/contributor/username" /> 
      <field column="userId" xpath="/mediawiki/page/revision/contributor/id" /> 
      <field column="text"  xpath="/mediawiki/page/revision/text" /> 
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" /> 
      <field column="$skipDoc" regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/> 
     </entity> 
     </document> 
</dataConfig> 

而且我在下面給entires添加schema.xml中。

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    <field name="title"  type="string" indexed="true" stored="false"/> 
    <field name="revision" type="int" indexed="true" stored="true"/> 
    <field name="user"  type="string" indexed="true" stored="true"/> 
    <field name="userId" type="int"  indexed="true" stored="true"/> 
    <field name="text"  type="text_en" indexed="true" stored="false"/> 
    <field name="timestamp" type="date" indexed="true" stored="true"/> 
    <field name="titleText" type="text_en" indexed="true" stored="true"/> 

我已經從「例如/例如,DIH/Solr的/ Solr的/ conf目錄/ schema.xml中」複製schema.xml中,並在評論中提到去除除了少數例外的所有字段項。

導入數據後,我只是想獲取所有領域,但我只獲得「Id」和「標題」。

另外我試圖運行使用調試模式的documentImport,以便我可以得到一些關於索引的信息,但是每當我選擇調試模式時,它只導入2個文檔。我不知道爲什麼?由於這個原因,我無法調試索引過程。

請繼續引導我。

編輯現在我確定其他字段沒有被索引,因爲當我指定df = user或text時,我得到下面的消息。

「msg」 中: 「未定義字段用戶」,

我查詢象下面這樣: http://localhost:8983/solr/wiki/select?q=%3A & FL = ID%2Ctitle%2Ctext%2Crevision &重量= JSON & indent = true & debugQuery = true

+0

這兩個文檔是否在調試模式下編入索引? – MatsLindh

+0

是的..這些被完全索引。實際上我使用調試模式來檢查爲什麼不是所有的數據都被索引? – virus

+0

更改架構後是否重新加載了核心或重新啓動的Solr? – MatsLindh

回答

0

提供的設置只適用於經典模式。但在solrconfig默認情況下,託管模式已啓用。由於我沒有得到文本。對於託管模式,我不需要定義「schema.xml」,我應該像下面那樣在data-config.xml中定義字段。

<field column="id"  xpath="/mediawiki/page/id" /> 
      <field column="title_s"  xpath="/mediawiki/page/title" /> 
      <field column="revision" xpath="/mediawiki/page/revision/id" /> 
      <field column="user_s"  xpath="/mediawiki/page/revision/contributor/username" /> 
      <field column="userId" xpath="/mediawiki/page/revision/contributor/id" /> 
      <field column="text_s"  xpath="/mediawiki/page/revision/text" /> 
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" /> 
      <field column="$skipDoc" regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/> 
0

我親愛的朋友,您只是輸入了錯誤的字段之一。試試這個鏈接,你會想同時笑和哭。

http://localhost:8983/solr/wiki/select?q=*%3A*&fl=id+titleText+user+revision&wt=json&indent=true

你在架構中提到的標題是「titleText」和你的極限提到的「標題」和「文本」 seperately。所以上帝的速度,你可以通過環聊與我保持聯繫:[email protected]

+0

它不工作。 – virus

+0

正如我檢查,我發現,而不是標題和ID,沒有得到索引。我也發送了環聊請求。請接受它。 – virus