簡體   English   中英

添加文檔后,Solr搜索引擎需要重新啟動

[英]Solr search engine need to restart after adding docs

我正在使用solr PHP客戶端使用solr 6.6.0。 我正在使用以下代碼添加文檔,並且可以正常工作:

foreach ($data as $key => $value) {

                $docs['doc_no'.$i]['id'] = $value['id'];
                $docs['doc_no'.$i]['name'] = $value['name'];
                $docs['doc_no'.$i]['sub_title'] = strip_tags($value['sub_title']);
                $docs['doc_no'.$i]['small_image'] = $value['small_image'];
                $docs['doc_no'.$i]['project_type'] = $value['project_type'];
                $docs['doc_no'.$i]['project_status'] = $value['project_status'];
                $docs['doc_no'.$i]['logo'] = $value['logo'];
                $docs['doc_no'.$i]['price'] = $value['price'];
                $docs['doc_no'.$i]['url'] = $value['url'];
                $docs['doc_no'.$i]['flat_type_desc'] = $value['flat_type_desc'];
                $docs['doc_no'.$i]['project_config'] = $value['project_config'];
                $docs['doc_no'.$i]['address'] = $value['address'];
                $docs['doc_no'.$i]['location'] = $value['location'];

                $i++;
            }
            //print_r($docs);exit;

            $documents = array();
            foreach($docs as $item => $fields) {
                $part = new Apache_Solr_Document();

                foreach ( $fields as $key => $value ) {
                    if ( is_array( $value ) ) {
                        foreach ( $value as $data ) {
                            $part->setMultiValue( $key, $data );
                        }
                    }
                    else{
                        $part->$key = $value;
                    }
                }

                $documents[] = $part;
            }

            try {
                    $solr->addDocuments( $documents );
                    $solr->commit();
                    $solr->optimize();


                }
                catch ( Exception $e ) {
                    echo $e->getMessage();
                }

執行完上面的代碼后,我必須通過cmd行手動重新啟動solr,然后它會反映出來,我想問的是,每當我在solr中添加任何文檔時,我都必須手動重新啟動solr嗎? 一旦我在docs中擁有數據,還有其他方法可以自動重新啟動solr。

任何幫助將不勝感激,謝謝。

為了使提交的文檔在索引中可見,您必須進行提交-並要求打開一個新的閱讀器(通常由您自己處理,因此通常不需要這樣做。如何在Drupal框架中做到這一點我不知道,但是我猜你的Solr客戶端有一個commit方法或類似的東西,我試圖搜索API文檔,但是除了_Document類之外,它是空的。

發出提交后,索引更改將在幾秒鍾內可見,或者在軟提交的情況下(更改不會在以后保留到磁盤上)幾乎立即可見。

您還可以在提交文檔時要求commitWithin間隔,但這還取決於您使用的客戶端如何工作以包含該參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM