gpt4 book ai didi

mysql - 如何使用 DIH 将数据从 DB 导入到 SOLR 中?

转载 作者:行者123 更新时间:2023-11-29 21:59:34 25 4
gpt4 key购买 nike

我正在尝试使用 DIH 将数据从 MySQL 导入到 SOLR,我的查询由连接和左外连接组成,例如:

   select * from products    join merchants on merchants.id=products.merchant_id                             

left outer join cats_products on products.id=cats_products.product_id

join categories on cats_products.category_id=categories.id;

,当我使用 join 时一切正常,但是当我想使用左外连接时需要很长时间,并且很长一段时间后它什么也没有返回并且超时,我发现了一些关于使用 batchSize 但是当我更改此参数的数字时,它没有任何区别,所以我的问题之一是为什么它没有影响?batchSize="30000" 例如。

然后我在查询中使用 limit ,并在我的 dih 配置中使用大量具有不同限制的实体,例如:

    <entity name="first" query="select * from table LIMIT 0, 5000">
....
</entity>
<entity name="second" query="select * from table LIMIT 5000, 10000">
...
</entity>

但我有大量数据,无法将其用于完全导入。所以我想知道也许应该尝试其他一些方法,我的意思是从数据库中分块获取数据或......任何想法将不胜感激。

最佳答案

您是否尝试过使用startrows参数?我只在管理面板中完成了此操作,但您可以从那里进行实验,看看这是否适合您。否则,您可能需要输入如下 URL:[host]:[port]/solr/dataimport?command=[command]&clean=[true|false]&commit=[true|false]&start=[开始]&rows=[行数]

不过,您需要自己跟踪记录偏移量。

如果您使用 SolrJ,您可能会执行类似的操作

solrQuery.set("command", "full-import");
solrQuery.set("clean", "true");
solrQuery.set("commit", "true");
solrQuery.set("start", "0");
solrQuery.set("rows", "1000");

关于mysql - 如何使用 DIH 将数据从 DB 导入到 SOLR 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791526/

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