исключение написания идентификатора документа

У меня есть солр 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), никаких записей не появляется и там написано «Люк не настроен». Пока я еще могу запустить запрос 🙁http://url:8983/solr/asdf/select?q=*:*), Я не могу увидеть количество записей или изменить базу данных вообще.

Я делаю что-то неправильно, что приводит к повреждению моего стола?

Щедрое время. Мне действительно нужна помощь в решении этого!

d: \ Solr \ Solr-5.4.1 \ сервер \ Logs \ 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]

Кроме того, у меня теперь есть несколько папок «solr_backupYYYYMM» в моем asdf/data папка. Могу ли я удалить их вручную, не вызывая проблем? Я полагаю, что единственное, что работает с solr после 5 вечера, — это сценарий python, который я писал для резервного копирования solr каждую ночь, и как часть сценария он в настоящее время удаляет любую папку с YYYYMM строка старше 7 дней (поэтому у меня не осталось свободного места). Я вычеркнул эту часть из сценария вчера, на случай, если это может быть причиной проблемы. Я просто пытаюсь думать обо всем.

введите описание изображения здесь

5

Решение

Кажется, что ваша проблема описана здесь: 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 открытым.» заголовок.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]