gpt4 book ai didi

php - 自动从mysql导入数据到solr

转载 作者:行者123 更新时间:2023-11-29 04:02:42 25 4
gpt4 key购买 nike

我想将值从 mysql 导入到 solr.. 我通过调用 php 脚本进行了自动导入

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

自动导入数据?

有人能帮我吗...

最佳答案

尽管如其他回复中所述,Data Import Handler (DIH) 有针对此功能的内置机制,但我发现此工具不是很灵活。我的意思是,如果我想在索引之前进行任何数据处理,我只能依赖 MySQL 函数,而我本可以使用 PHP 函数。

我最终将自己的数据导入处理程序编写为 PHP 脚本,它在其中执行初始查询,然后逐步处理结果并在插入 SOLR 索引时处理(和缓存)数据。它并不太复杂,看起来像(仅供说明):

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());
}
}

这只是您可以执行的操作的一个示例,在我的情况下,我还涉及缓存以在执行完全导入时提高性能。使用 native DIH 无法做到的事情。

我用来通过 PHP 访问 SOLR 的 API 是 solr-php-client ,可能还有其他人在那里,所以谷歌一下。

关于php - 自动从mysql导入数据到solr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9323582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com