Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动将数据从mysql导入solr_Php_Mysql_Solr - Fatal编程技术网

Php 自动将数据从mysql导入solr

Php 自动将数据从mysql导入solr,php,mysql,solr,Php,Mysql,Solr,我想将值从mysql导入solr。。我通过调用php脚本实现了自动导入 使用mysql触发器。但是我读到这不是一个好方法。。还有其他解决办法吗 自动导入数据 有人能帮我吗?plzz…你也可以使用你也可以使用Solr将帮助你从mysql导入数据并将其编入索引。 它提供了对数据进行编辑和索引的功能。 但是,它不是自动的,您需要通过调度程序cron启动数据导入。 有一些选项正在研究中。Solr将帮助您从mysql导入数据并将其索引。 它提供了对数据进行编辑和索引的功能。 但是,它不是自动的,您需要通过

我想将值从mysql导入solr。。我通过调用php脚本实现了自动导入

使用mysql触发器。但是我读到这不是一个好方法。。还有其他解决办法吗

自动导入数据

有人能帮我吗?plzz…

你也可以使用

你也可以使用

Solr将帮助你从mysql导入数据并将其编入索引。
它提供了对数据进行编辑和索引的功能。
但是,它不是自动的,您需要通过调度程序cron启动数据导入。 有一些选项正在研究中。

Solr将帮助您从mysql导入数据并将其索引。
它提供了对数据进行编辑和索引的功能。
但是,它不是自动的,您需要通过调度程序cron启动数据导入。
有一些选项正在为它工作。

尽管有一个内置的机制,数据导入处理程序(DIH),正如在其他响应中提到的,我发现这个工具不是很灵活。我的意思是,如果我想在索引之前做任何数据处理,我只能依赖MySQL函数,而我可以使用PHP函数

最后,我以PHP脚本的形式编写了自己的数据导入处理程序,在该脚本中执行初始查询,然后逐步完成结果,并在插入SOLR索引时对数据进行处理(和缓存)。它并不太复杂,看起来有点像(仅用于说明):

这只是一个示例,说明了在我的情况下,在执行完全导入时,还需要缓存来提高性能。使用本机DIH无法执行的操作


我用来通过PHP访问SOLR的API是,可能还有其他API,所以谷歌搜索。

尽管有一个内置的机制,
数据导入处理程序(DIH)
,正如其他响应中提到的,我发现这个工具不是很灵活。我的意思是,如果我想在索引之前做任何数据处理,我只能依赖MySQL函数,而我可以使用PHP函数

最后,我以PHP脚本的形式编写了自己的数据导入处理程序,在该脚本中执行初始查询,然后逐步完成结果,并在插入SOLR索引时对数据进行处理(和缓存)。它并不太复杂,看起来有点像(仅用于说明):

这只是一个示例,说明了在我的情况下,在执行完全导入时,还需要缓存来提高性能。使用本机DIH无法执行的操作

我用来通过PHP访问SOLR的API是,可能还有其他API,所以谷歌可以四处搜索

SELECT 
  book.id AS book_id,
  book.name AS book_name,
  GROUP_CONCAT(DISTINCT author.name) AS authors
FROM
  book
INNER JOIN
  link_book_author AS alink ON alink.book_id = book.id
INNER JOIN
  author ON author.id = alink.author_id
GROUP BY
  book.id;

$stmt = $dbo->prepare($sql);

$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {

    try {

        $document = new Apache_Solr_Document();

        $document->Id = $row->book_id;
        $document->BookName = $row->book_name;

        $document->Author = explode(',' $row->author);

        $this->getSearchEngineInstance()->addDocument($document);

    } catch (Exception $e) {

        error_log(sprintf('Unable to add document to index: (%s)', $e->getMessage());
    }
}