Mysql 通过SolrJ索引db

Mysql 通过SolrJ索引db,mysql,indexing,solr,solrj,Mysql,Indexing,Solr,Solrj,我是Solr的初学者。我有一个场景,我需要从我的MySQL数据库索引数据,并需要查询它们。我已经找到了使用DIH提供db数据导入配置的方法。我还知道如何通过SolrJ查询我的索引 如何通过SorJ客户端为我的数据库建立索引 是否有任何方法可以利用我的配置文件实现同样的目标。我们需要使用java API,因此所有的索引和查询只能通过SolrJ完成。如果您只需要打开到Solr服务器的连接进行索引,而不需要将配置文件实际集成到SolrJ项目中,这是相当简单的 首先,您需要打开一个连接SolrJ,其操作

我是Solr的初学者。我有一个场景,我需要从我的MySQL数据库索引数据,并需要查询它们。我已经找到了使用DIH提供db数据导入配置的方法。我还知道如何通过SolrJ查询我的索引

如何通过SorJ客户端为我的数据库建立索引


是否有任何方法可以利用我的配置文件实现同样的目标。我们需要使用java API,因此所有的索引和查询只能通过SolrJ完成。

如果您只需要打开到Solr服务器的连接进行索引,而不需要将配置文件实际集成到SolrJ项目中,这是相当简单的

首先,您需要打开一个连接SolrJ,其操作如下:

HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8983/solr"); 
另一个选项是利用Spring Data Solr的Solr模式,并制作Solr服务器bean来执行以下操作:

<solr:solr-server id="fullSearchIndex" url="${solrServiceBaseURL}/${solr.full.core}" />
上面的代码告诉Solrj创建一个查询,该查询将执行完整导入类型的数据导入

我认为值得指出的是,如果您有许多记录要导入,SolrJ程序可能会在导入之前结束。要检查导入的状态,请单击。根据我的经验,SolrJ程序启动、发送导入查询并结束需要几秒钟,但实际启动过程需要几分钟


此外,由于您需要使用SolrJ进行所有索引,因此您需要考虑在增量导入之后何时运行optimize命令。优化是一个非常昂贵的操作,因为它会临时将索引大小增加一倍。您可能希望使用Quartz之类的工具来计划每天最多运行一到两次optimize命令。就我个人而言,我使用cron进行增量导入和优化。

预先宣布感谢帮助永远不应该是好问题的一部分。让人们浏览你的聊天阅读是不礼貌的,投票选出好的答案,接受最好的答案,这是对回答者在@user3701803上的努力表示感谢的方式。请完整阅读他的答案,关于春天的注释只是一个旁注。SolrJ是一种很好的解释方式。还有关于DataImportHandler DIH的说明,这是将关系数据库索引到Solr中的标准方法。
params.set("qt", "/dataimport");
params.set("command", "full-import");
QueryResponse response = solrServer.query(params);