2014-09-25 10 views
0

Solr中執行delete時,它保持失敗。承諾新的仍然有效。我一直未能發現爲什麼發生這種情況,不同的文件/不同的條目似乎沒有什麼不同。在刪除Solr中的記錄時,「1480184563863912448」等輸入字符串來自哪裏?

solr日誌保留給錯誤:

NumberFormatException: For input string: "", with different strings, though all the same length and all starting with 14. 

怎麼回事請告訴我?這個字符串從哪裏來?

堆棧跟蹤:

auto commit error...:java.lang.NumberFormatException: For input string: "1480184563863912448" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
     at java.lang.Integer.parseInt(Integer.java:495) 
     at java.lang.Integer.parseInt(Integer.java:527) 
     at org.apache.lucene.queries.function.docvalues.IntDocValues.getRangeScorer(IntDocValues.java:97) 
     at org.apache.solr.search.function.ValueSourceRangeFilter$1.iterator(ValueSourceRangeFilter.java:81) 
     at org.apache.solr.search.SolrConstantScoreQuery$ConstantScorer.<init>(SolrConstantScoreQuery.java:165) 
    at org.apache.solr.search.SolrConstantScoreQuery$ConstantWeight.scorer(SolrConstantScoreQuery.java:123) 
    at org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:356) 
    at org.apache.lucene.search.QueryWrapperFilter$1.iterator(QueryWrapperFilter.java:59) 
    at org.apache.lucene.index.BufferedUpdatesStream.applyQueryDeletes(BufferedUpdatesStream.java:554) 
    at org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:287) 
    at org.apache.lucene.index.IndexWriter.applyAllDeletesAndUpdates(IndexWriter.java:3268) 
    at org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:3259) 
    at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2973) 
    at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3122) 
    at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3089) 
    at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:582) 
    at org.apache.solr.update.CommitTracker.run(CommitTracker.java:216) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Schem.xml領域配置

<fields>                   
<field name="_version_" type="int" indexed="true" />           
    <field name="id" type="string" indexed="true" stored="true" required="true" /> 
    <field name="content_nl" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="title_nl" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="title_h1_nl" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="root_id" type="int" indexed="true" stored="true" />    
    <field name="text" type="testedgengrams" indexed="true" stored="true" />  
    <field name="ondertitel" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="programma" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="documenttype" type="testedgengrams" indexed="true" stored="true" /> 
    <field name="jaar" type="string" indexed="true" stored="true" />    
    <field name="file" type="testedgengrams" indexed="true" stored="true" />  
    <field name="meta_description_nl" type="testedgengrams" indexed="true" stored="true"/> 
    <field name="published_start" type="date" indexed="true" stored="true" />  
    <field name="published_end" type="date" indexed="true" stored="true" />   
    <field name="trefwoord" type="testedgengrams" indexed="true" stored="true" multiValue 
    <field name="auteur" type="testedgengrams" indexed="true" stored="true" multiVa 
    <field name="opdrachtgever" type="testedgengrams" indexed="true" stored="true" 
    <field name="alltext" type="testedgengrams" indexed="true" stored="true" multiV       
    <field name="programma_filter" type="keyword" indexed="true" stored="true" /> 
    <field name="documenttype_filter" type="keyword" indexed="true" stored="true"/
    <field name="trefwoord_filter" type="keyword" indexed="true" stored="true" mult 
    <field name="auteur_filter" type="keyword" indexed="true" stored="true" multiVa 
    <field name="opdrachtgever_filter" type="keyword" indexed="true" stored="true"                  
</fields>                   

<uniqueKey>id</uniqueKey>               

<defaultSearchField>title_nl</defaultSearchField>         

<solrQueryParser defaultOperator="OR"/>           
    <copyField source="*" dest="alltext"/>           
    <copyField source="programma" dest="programma_filter"/>      
    <copyField source="documenttype" dest="documenttype_filter"/>     
    <copyField source="trefwoord" dest="trefwoord_filter"/>      
    <copyField source="auteur" dest="auteur_filter"/>        
    <copyField source="opdrachtgever" dest="opdrachtgever_filter"/>    
+0

是否有可能增加從而引發了刪除操作的代碼或要求? – fyr 2014-09-25 11:01:09

+0

Url:'solr_url/update?wt = json' Post:'' ContentType:'text/xml; charset = UTF-8' – JoeySimsen 2014-09-25 11:24:46

+0

這個例外的根本原因是這個數字對於Integer來說太大了。您能否顯示schema.xml,solrconfig.xml和文檔示例 – Mysterion 2014-09-25 11:56:09

回答

1

在你的領域定義你有這樣的:

<field name="_version_" type="int" indexed="true" /> 

版本字段應該是一個long代替int因爲版本可能會變得相當大。嘗試將其更改爲類似

<field name="_version_" type="long" indexed="true" stored="true" multiValued="false" /> 

一定要清潔datafolder和做一個乾淨的進口

相關問題