异常编写文档标识

时间:2016-10-31 16:58:27

标签: php solr solr5

我有一个solr 5.4.1 表,我允许用户发表评论。通过PHP,用户可以运行以下功能:

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)

如果我尝试在solr(http://url:8983/solr/asdf)中加载核心,则不会出现任何记录,并显示“Luke未配置”。虽然我仍然可以运行查询:(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(MMapDirectory@D:\solr\solr-
5.4.1\server\solr\asdf\data\restore.snapshot.solr_backup_20161104
 lockFactory=org.apache.lucene.store.NativeFSLockFactory@17df8f10;
 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]

另外,我现在在asdf/data文件夹中有几个“solr_backupYYYYMM”文件夹。我可以手动删除这些而不会导致问题吗?我相信,在下午5点之后对solr运行的唯一一件事是我每晚都写入备份solr的python脚本,作为脚本的一部分,它当前正在删除任何带有YYYYMM字符串的文件夹那7天(所以我没有用完空间)。截至昨天我已经从脚本中删除了那部分内容,以防可能导致问题的原因。我只是想想一切。

enter image description here

1 个答案:

答案 0 :(得分:2)

您的问题似乎在此处描述:http://lucene.472066.n3.nabble.com/Exception-writing-document-to-the-index-possible-analysis-error-td4174845.html

由于有一个完整的讨论,我将在讨论底线复制两个引用:

  

"我认为您已尝试将空字符串索引到数字字段中。   那不行。它必须是有效数字,或者您需要   完全离开球场"。

     

"架构中需要字段_collection_id而未填写   我的更新请求"。

你的第二个问题" IndexNotFoundException: no segments* file found in"发生的原因是因为异常IndexWriter死后留下write.lock和临时索引文件。这里描述了这个问题https://wilsonericn.wordpress.com/2011/12/14/my-first-5-lucene-mistakes"#3:让IndexWriter保持打开状态。"标题。