1
我堅持我solr的新本地安裝。每件事情都很好,直到某一點。不成功的更新請求。響應代碼0.(空)索引在索爾
我可以訪問的Solr的管理沒有任何問題:http://localhost:8983/solr/admin/
但是當我索引我的MySQL的內容,我拋出的錯誤:
不成功的更新請求。響應代碼0.(null)
而沒有別的。我到處看了一下,但我真的無法弄清楚問題出在哪裏以及在哪裏。
有什麼想法?
以下是有關whatI一些信息,嘗試爲:
在我的schema.xml中的字段:
<field name="pl_album_id" type="string" indexed="true" stored="true" required="true" />
<field name="pl_album_num_id" type="int" indexed="true" stored="true" required="true" />
<field name="pl_album_title" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_album_number" type="int" indexed="true" stored="true"/>
<field name="pl_album_keywords" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_album_summary" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_album_general_mark" type="int" indexed="true" stored="true"/>
<field name="pl_album_authors" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_album_signer_id" type="int" indexed="true" stored="true" multiValued="true"/>
<field name="pl_album_format" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_album_is_complete" type="int" indexed="true" stored="true"/>
<field name="pl_album_status_id" type="int" indexed="true" stored="true"/>
<field name="pl_album_sort_status_id" type="int" indexed="true" stored="true"/>
<field name="pl_album_is_online" type="int" indexed="true" stored="true"/>
<field name="pl_album_review_created_at" type="date" indexed="true" stored="true"/>
<field name="pl_album_review_year" type="int" indexed="true" stored="true"/>
<field name="pl_series_id" type="int" indexed="true" stored="true"/>
<field name="pl_series_title" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_series_title_copy_for_sorting" type="string" indexed="true" stored="true"/>
<field name="pl_series_prefix" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_series_type_id" type="int" indexed="true" stored="true"/>
<field name="pl_series_origin_id" type="int" indexed="true" stored="true"/>
<field name="pl_series_genre_id" type="int" indexed="true" stored="true" multiValued="true"/>
<field name="pl_series_genres" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_series_targeted_public_id" type="int" indexed="true" stored="true" multiValued="true"/>
<field name="pl_collection_id" type="int" indexed="true" stored="true"/>
<field name="pl_collection_label" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_publisher_id" type="int" indexed="true" stored="true"/>
<field name="pl_publisher_name" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_published_at" type="date" indexed="true" stored="true"/>
<field name="pl_visit_counter" type="int" indexed="true" stored="true"/>
<field name="pl_user_id" type="int" indexed="true" stored="true"/>
<field name="pl_user_first_name" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_user_last_name" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_cycle_type_id" type="int" indexed="true" stored="true"/>
<field name="pl_cycle_title" type="text_general_fr" indexed="true" stored="true"/>
<field name="pl_cycle_number" type="int" indexed="true" stored="true"/>
而且我索引它們與功能:
public function solrIndex($AlbumId = null)
{
$album = new Album();
$album_list = $album->getForSolrIndex($AlbumId);
$options = array
(
'hostname' => sfConfig::get('plconfig_solr_hostname'),
'port' => sfConfig::get('plconfig_solr_port')
);
$solr_client = new SolrClient($options);
foreach($album_list as $album_details)
{
$solr_client->deleteByQuery("pl_album_num_id:".$album_details['id']);
}
$solr_client->commit();
foreach($album_list as $album_details)
{
$doc = new SolrInputDocument();
$doc->addField('pl_album_id', $album_details['id']);
$doc->addField('pl_album_num_id', $album_details['id']);
$doc->addField('pl_album_title', $album_details['title']);
if($album_details['number'])
{
$doc->addField('pl_album_number', $album_details['number']);
}
$doc->addField('pl_album_keywords', $album_details['keywords']);
$doc->addField('pl_album_summary', $album_details['summary']);
if($album_details['general_mark'])
{
$doc->addField('pl_album_general_mark', $album_details['general_mark']);
}
$doc->addField('pl_album_authors', $album_details['authors']);
$doc->addField('pl_album_is_complete', $album_details['album_is_complete'] ? $album_details['album_is_complete'] : 0);
$doc->addField('pl_album_status_id', $album_details['status_id'] ? $album_details['status_id'] : 0);
$sort_status_id = 8;
if($album_details['status_id'] == Album::TO_REREAD)
{
$sort_status_id = 1;
}
if($album_details['status_id'] == Album::TO_IMPROVE)
{
$sort_status_id = 2;
}
if($album_details['status_id'] == Album::TO_REVIEW)
{
$sort_status_id = 3;
}
if($album_details['status_id'] == Album::TO_RECEIVE)
{
$sort_status_id = 4;
}
if($album_details['status_id'] == Album::ONLINE)
{
$sort_status_id = 5;
}
if($album_details['status_id'] == Album::ABANDON_BY_PUBLISHER)
{
$sort_status_id = 6;
}
if($album_details['status_id'] == Album::ABANDON_BY_PLANETEBD)
{
$sort_status_id = 7;
}
$doc->addField('pl_album_sort_status_id', $sort_status_id);
$doc->addField('pl_album_format', $album_details['format']);
$doc->addField('pl_album_is_online', $album_details['is_online'] ? $album_details['is_online'] : 0);
if($album_details['album_review_created_at'])
{
$doc->addField('pl_album_review_created_at', date('Y-m-d\TH:i:s\Z', strtotime($album_details['album_review_created_at'])));
$doc->addField('pl_album_review_year', date('Y', strtotime($album_details['album_review_created_at'])));
}
$doc->addField('pl_series_id', $album_details['series_id']);
$doc->addField('pl_series_title', $album_details['series_title']);
$doc->addField('pl_series_title_copy_for_sorting', $album_details['series_title']);
$doc->addField('pl_series_prefix', $album_details['series_prefix']);
if($album_details['type_id'])
{
$doc->addField('pl_series_type_id', $album_details['type_id']);
}
$doc->addField('pl_series_genres', $album_details['series_genres']);
$doc->addField('pl_series_origin_id', $album_details['series_origin_id'] ? $album_details['series_origin_id'] : 0);
$doc->addField('pl_collection_id', $album_details['collection_id'] ? $album_details['collection_id'] : 0);
$doc->addField('pl_collection_label', $album_details['label']);
$doc->addField('pl_publisher_id', $album_details['publisher_id']);
$doc->addField('pl_publisher_name', $album_details['name']);
if($album_details['published_at'])
{
$doc->addField('pl_published_at', $album_details['published_at'].'T00:00:00Z');
}
$doc->addField('pl_visit_counter', $album_details['visit_counter'] ? $album_details['visit_counter'] : 0);
$doc->addField('pl_user_id', $album_details['user_id'] ? $album_details['user_id'] : 0);
$doc->addField('pl_user_first_name', $album_details['user_first_name']);
$doc->addField('pl_user_last_name', $album_details['user_last_name']);
$doc->addField('pl_cycle_type_id', $album_details['cycle_type_id'] ? $album_details['cycle_type_id'] : 0);
$doc->addField('pl_cycle_title', $album_details['cycle_title']);
$doc->addField('pl_cycle_number', $album_details['cycle_number'] ? $album_details['cycle_number'] : 0);
foreach($album_details['signers'] as $signer_id) {
$doc->addField('pl_album_signer_id', $signer_id);
}
foreach($album_details['genres'] as $genre_id) {
$doc->addField('pl_series_genre_id', $genre_id);
}
foreach($album_details['targeted_public'] as $targeted_public_id) {
$doc->addField('pl_series_targeted_public_id', $targeted_public_id);
}
$updateResponse = $solr_client->addDocument($doc);
}
$solr_client->commit();
return count($album_list);
}
您能否提供更多關於如何索引mysql內容的索引,數據有哪些字段以及您的模式中有哪些字段? – joeln
當然:我只是更新畝後!但我不確定這是否與代碼有關,因爲完全相同的代碼在項目中的其他開發人員的計算機上工作。我想我的安裝問題(我不得不打了一下安裝它,因爲它現在),但真的無法找出什麼是錯的.... – user1814436