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相似的方式命名为核心2),然后再次运行该作业,这一次,我看到核心2没有显示任何文档,只有核心1仍然显示。
有没有人可以建议一下如何使用solr的内核来分发和存储文档,这样我就可以更快地索引数据,我的假设是,如果增加内核的数量,索引的速度应该会提高。
多谢了。
在您的代码中,它仍然指向Core1。
HttpSolrClient solrClient = new HttpSolrClient("http://localhost:8983/solr/core1"
如果您想获得core2的索引
你需要在这里换衣服
HttpSolrClient solrClient = new HttpSolrClient("http://localhost:8983/solr/core2"
问题内容: 我们正在使用Solr进行搜索,并将数据分片到多个内核中。我们每周有一个核心数据,因此我们每周都会动态创建和删除核心。 如何查询solr服务器的所有核心列表?JavaDoc说我可以使用,但是我不确定如何构建coreAdminHandler对象。 问题答案: 请求(当然替换您自己的主机/端口)将返回所有内核。
我试图使用solrj构建一个solr查询。根据我对Solr-7.5.0的理解,solrj的所有库和依赖项都应该包含在我的Solr安装中。下面是我的/dist文件夹,后面是我的/dist/solrj-lib文件夹 现在,我的查询将被绑定到一个html post表单,但我想让solrj先工作。这是我全部的solrj 这将无法编译,因为它无法识别我的类(SolrClient、SolrQuery等)。我肯
问题内容: 使用Solr建议程序从solrj获取结果的正确方法是什么? 这是我的要求: 但是我发现很难得到答复。我得到响应的方式是这样的: 这似乎对我从响应中获取的对象有很多假设,并且很难预料到错误。 有没有比这更好更好的方法了? 问题答案: 在新版本中,有一个AskerResponse: https://lucene.apache.org/solr/5_3_1/solr- solrj/org/a
我正在尝试使用同一版本的SolrJ从Java代码连接到运行5.3.1的Solr服务器。我在Eclipse中不断收到一条消息,HttpSolrServer已被弃用,但在任何地方都找不到它已被取代的内容。有人知道我如何使用SolrJ和当前的东西从Java连接到Solr吗?SolrJ文档似乎都表明HttpSolrServer是受支持的方式,但Eclipse对此并不满意。
我正在使用SOLRJ(与SOLR 7一起使用),我的索引为文档内容提供了一些名为content_eng、content_ita的字段...它还提供了一个包含文档完整路径的字段(由和处理)。 用户能够在content_xyz字段中进行搜索,这要归功于以下几行:final SolrQuery query=new SolrQuery();setQuery(searchedText);query.set(
我按照教程使用Solrj(并更新到最新的Solrj版本6.0.1), 1) 下载Solr 2) 使用从命令行启动solr server solr-6.0.1\bin 看起来一切正常,http://localhost:8983/solr/可以在浏览器中查看 3) 已执行HelloWorld Solrj代码: 例外 org.apache.solr.client.solrj.impl.HttpSolrC