2016-10-31 5 views
5

私はユーザーがコメントを作成できるようにする5.4.1テーブルを持っています。 PHPにより、ユーザは、次の関数を実行します:例外書類のドキュメントID

function solr_update($id, $comments) { 
    $ch = curl_init("http://url:8983/solr/asdf/update?commit=true"); 


    $data = array(
      "id" => $id, 
      "comments" => array(
       "set" => $comments), 
      ); 

    $data_string = json_encode(array($data));   

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 

    echo curl_exec($ch); 

} 

時間のほとんどは、この作品、私はこの応答を取得している間:これは、応答のとき

{"responseHeader":{"status":0,"QTime":83}} 

は最近、私は時間に実行してきました私はcurl_exec($ch)から得る。

{"responseHeader":{"status":400,"QTime":6}, 
"error":{"msg":"Exception writing document id 376299 
to the index; possible analysis error.","code":400}} 

私はこれを引き起こしているかわからないんだけど、それが起こるとき、それは全体の表のようなものだが死ぬと私は戻って(http://url:8983/solr/asdf/replication?command=restore&name=solr_backup_20161028)それを得るためにrestorepointを使用する必要があります。

solr(http://url:8983/solr/asdf)でコアをロードしようとすると、レコードが表示されず、「Luke is configured」と表示されます。私はまだクエリを実行することができますが(http://url:8983/solr/asdf/select?q=*:*)、私はレコード数を見ることができず、データベースを変更することもできません。

私のテーブルが破損する原因となっている何か間違っているのですか?

編集

賞金の時間。私は本当にこれを解決するいくつかの助けが必要です!

EDIT2 - サーバーログ

D:\ Solrの\ Solrの-5.4.1 \サーバー\ログ\またsolr.log.2

2016-11-15 13:59:49.997 ERROR (qtp434176574-19) [ x:invoice] 
o.a.s.s.HttpSolrCall null:org.apache.lucene.index.IndexNotFoundException: 
no segments* file found in 
NRTCachingDirectory([email protected]:\solr\solr- 
5.4.1\server\solr\asdf\data\restore.snapshot.solr_backup_20161104 
[email protected]; 
maxCacheMB=48.0 maxMergeSizeMB=4.0): files: [_pej4.fdt, 
_pej4_Lucene50_0.doc, _pej4_Lucene50_0.tim, _wxvy.fdt, 
_wxvy_Lucene50_0.doc, _wxvy_Lucene50_0.tim] 

は、私が今持っているいくつかの "solr_backupYYYYMM"私のasdf/dataフォルダのフォルダ。問題を起こさずにこれらを手動で削除できますか?午後5時以降solrに対して実行される唯一の事は、私が毎晩バックアップsolrに書き込んだpythonスクリプトであり、スクリプトの一部として現在YYYYMMという文字列のフォルダを削除していることです。私は宇宙を使い果たしません)。私は問題を引き起こしているかもしれない場合に備えて、昨日のようにスクリプトからその部分を取りました。私はすべてを考えようとしています。

enter image description here

+0

ほとんどここでは推測しますが、SQLサーバーの「無効なSQL」とほぼ同じですか? GIGO、提出されたすべてのデータをダブルチェックしますか?何かがnullです、必須の属性がありませんか?悪い引用? (あまりにもSQL、:P) –

+0

ちなみに、 "num docs"プラス "deleted docs"はレポートの "max docs"に等しい。 –

+0

失敗したもの(例えば、NULL、文字列と配列など)に「コメント」に関する特定のものがあるか、他の文字には表示されない文字が含まれていますか(例えば、カンマまたはéや-byte characters?) – Robbie

答えて

2

あなたの問題がここで説明されているようです:http://lucene.472066.n3.nabble.com/Exception-writing-document-to-the-index-possible-analysis-error-td4174845.html

全体の議論があるので、私は議論のボトムラインを持つ2つの引用をコピーします。

「私は考えます空の文字列を数値フィールドにインデックスを作成しようとしました。 これは有効ではありません。有効な数値である必要があります。または フィールドを完全にそのまま残す必要があります。

"フィールド_collection_idがスキーマに必要であり、 私の更新要求に記入されていません"。例外の後IndexWriterが所定の位置にwrite.lockと一時インデックスファイルを残したダイので

あなたの第二の問題は、「IndexNotFoundException: no segments* file found inは」起こります。この問題は、ここでは「#3:IndexWriterを開いたままにする」のhttps://wilsonericn.wordpress.com/2011/12/14/my-first-5-lucene-mistakesに記載されています。見出し。

関連する問題