gpt4 book ai didi

java - 如何在solrj中使用Solr的所有核心

转载 作者:行者123 更新时间:2023-12-01 11:25:17 26 4
gpt4 key购买 nike

我已经下载了 solr 5.2.0 并开始使用 $solr_home/bin/solr start

日志指出:

等待看到 Solr 正在监听端口 8983 [/]
在端口 8983 (pid=17330) 上启动 Solr 服务器。祝您搜索愉快!

然后我访问了http://localhost:8983/solr并使用Core Admin/new Core作为Core1创建了一个新的核心(使用solr-5.2.0/server/solr/configsets/data_driven_schema_configs/config 对于新核心)

然后我编写了一个java代码来索引一些记录

代码如下:

public static void main(String[] args) throws IOException, SolrServerException {

HttpSolrClient solrClient = new HttpSolrClient("http://localhost:8983/solr/core1"); //$NON-NLS-1$4
//HttpSolrClient solrClient = new HttpSolrClient(args[0]); //$NON-NLS-1$4

// Empty the database...
solrClient.deleteByQuery( "*:*" );// delete everything! //$NON-NLS-1$
System.out.println("cleared"); //$NON-NLS-1$
ArrayList<SolrInputDocument> docs = new ArrayList<>();

long starttime = System.currentTimeMillis();
for (int i = 0; i < 1000000; ++i) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("bat", "book"+i); //$NON-NLS-1$ //$NON-NLS-2$
doc.addField("id", "book id -" + i); //$NON-NLS-1$ //$NON-NLS-2$
doc.addField("name", "The Legend of the Hobbit part 1 " + i); //$NON-NLS-1$ //$NON-NLS-2$
doc.addField("id1", "book id -" + i); //$NON-NLS-1$ //$NON-NLS-2$
doc.addField("name1", "The Legend of the Hobbit part 2 " + i); //$NON-NLS-1$ //$NON-NLS-2$
doc.addField("id2", "book id -" + i); //$NON-NLS-1$ //$NON-NLS-2$

docs.add(doc);

if (i % 250000 == 0) {
solrClient.add(docs);
System.out.println("added "+ i + "documents"); //$NON-NLS-1$ //$NON-NLS-2$
docs.clear();
}
}
solrClient.add(docs);
System.out.println("completed adding to Solr. Now commiting.. Please wait"); //$NON-NLS-1$
solrClient.commit();
long endtime = System.currentTimeMillis();
System.out.println("process completed in "+(endtime-starttime)/1000+" seconds"); //$NON-NLS-1$ //$NON-NLS-2$
}

运行代码后,我检查 http://localhost:8983/solr/#/~cores/core1并看到 1000000 个文档被索引。

然后我添加了另一个核心(以与核心 1 类似的方式命名为 core2 ),然后再次运行该作业,这一次,我看到核心 2 没有显示任何文档,只有核心 1 仍然显示。

有人可以建议如何使用solr的两个核心来分发和存储文档,以便我可以更快地索引数据,我的假设是,如果我增加核心数量,索引的速度应该会增加。

如果有人尝试并成功地利用这两个核心并看到性能改进,请告诉我。

谢谢。

最佳答案

在您的代码中,它仍然指向 core1。

HttpSolrClient solrClient =  new HttpSolrClient("http://localhost:8983/solr/core1"

如果您想要 core2 的索引

您需要在此处进行更改

HttpSolrClient solrClient =  new HttpSolrClient("http://localhost:8983/solr/core2"

此更改后尝试运行作业,它将为 core2 建立索引。

关于java - 如何在solrj中使用Solr的所有核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867705/

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