Elasticsearch Bulk Api

Merhaba

işinize yararmı bilmem ama elastik search ile çalışanlar için bulk işlem yapabilmek önemli.

yii2::elasticsearch kullananlar

Command.php içerisine eklesinler


/**

     * Inserts a bulk action

     * @param string $index

     * @param string $type

     * @param string|array $data json string or array of data to store

     * @param array $options

     * @return mixed

     * @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html

     */

    public function bulk($index, $type, $data,   $options = []) {


        if (empty($data)) {

            $body = '{}';

        } else if(is_array($data)){

            

            foreach ($data["body"] as $key => $value) {

                $body.=Json::encode($value)."\n";

            }

        } else{

            $body = $data;

        }




        return $this->db->post([$index, $type,"_bulk"], $options, $body);

    }




$data=[];

foreach($datas as $tweet ){


   $data['body'][] = array(

                    'index' => array(

                        '_id' => $tweet["tweet_id"]

                    )

                );


                $data['body'][] = array(

                    'doc' => $tweet

                );

}


//ve datayı ekle


$command->bulk("my_index", "tweet", $data, null);




Kolay gelsin