知识点
相关文章
更多最近更新
更多(二)solr data import
2019-03-27 01:21|来源: 网路
solr 的 data import 导入 mysql数据
(1)、编辑 example/solr/conf/solrconfig.xml 添加 request handler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
(2)、创建 example/solr/conf/data-config.xml
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.2.242:3306/demo?characterEncoding=UTF-8"
user="demo"
password="*****"/>
<document>
<entity name="contract"
query="select id,contract_name,contract_num,add_time from contract">
<field column = "id" name="contractId"/>
<field column = "contract_name" name = "contractName" />
<field column = "contract_num" name="contractNum" />
</entity>
</document>
</dataConfig>
(3)、编辑example/solr/conf/scheme.xml
在fields里头添加
<field name="contractNum" type="string" indexed="true" stored="true"/>
<field name="contractId" type="string" indexed="true" stored="true"/>
<field name="contractName" type="string" indexed="true" stored="true"/>
(同时将uniqueKey改为contractId,并且将id字段的required为true去掉)
(4)、启动solr,报Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler'
添加相关data import lib 及 jdbc driver lib
~/solr-4.6.0/example/solr-webapp/webapp/WEB-INF/lib# cp ~/solr-4.6.0/dist/*.jar .
使用同一个zookeeper的solr也得进行相关jar的拷贝
(5)启动solr
java -Dbootstrap_conf=true -Dcollection.configName=scs -DzkRun -DnumShards=1 -jar start.jar
java -DzkHost=192.168.4.129:9983 -jar start.jar
(6)执行full import 命令
http://192.168.4.129:8983/solr/#/
转自:http://my.oschina.net/scipio/blog/214299
相关问答
更多-
如果我理解你的问题: 将文档插入Solr / Lucene时,它所看到的唯一内容是您在架构中设置为uniqueKey的字段。 如果您尝试向现有文档添加其他属性,Solr将删除现有文档(具有该唯一ID)并仅保留您在该文档中提供的上次插入索引的字段/属性。 Solr中有一个称为部分更新的功能,但它基本上读取当前字段值(因此必须stored所有字段),然后重新插入它们,就像您提供它们一样。 我认为这是你最好的选择。 看看这里了解更多信息。 If I understood your question correct ...
-
自定义Solr完全导入(Custom Solr Full Import)[2023-03-09]
您可以使用类似于http://wiki.apache.org/solr/DataImportHandlerDeltaQueryViaFullImport中提到的方法。 然后,您在data-config.xml中的查询将是solr delta-import在“处理”之前“获取”所有数据?(solr delta-import “fetches” all data before “processing”?)[2023-11-16]
一种解决方案可能是在data-config.xml设置batchSize 。 以下是如何执行此操作的示例:此示例取自以下链接: DataImportHandler - ... JAVA_HOME=/usr/java/default JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS" JETTY_HOME=/opt/solr JETTY_USER=solr JETTY_LOGS=/opt/solr/logs 所有这些设置都很重要。 特别是,不设置JETTY_LOGS会导致jetty尝试(并且失败)将请求日志放在/ home / solr / logs中。 通过链接 https://wiki.apache.org ...这就是我解决问题的方法。 我使用Camel-Http组件而不是Camel-Solr组件,并调用Solr数据导入处理程序来执行delta导入。 路线: from("quartz2://SolrUpdateHandlerTimer?trigger.repeatCount=-1&trigger.repeatInterval=300000") .to("direct:start"); from("direct:start") .setHeader(Exchange. ...如果DIH处理程序忙于运行请求,则会忽略发送给它的任何其他请求。 所以你必须回顾一下你如何/何时调用DIH的方法,一些想法: 正如你所说你有很高的编辑频率,通过id重新编排似乎并不是最好的,基于时间的某些时间似乎更具可扩展性。 你可以添加一个'lastUpdated'列(当这个行被创建/更新时通过触发器填充),然后每X(1分钟,5分钟......任何你能负担得起)调用reindex。 如果忽略一个请求,则不会丢失数据,应该重新索引的行将在下一个运行的增量上重新索引。 如果你想保持你的基于ID的方法,你需要: ...您可以使用url http://host:port/solr/dataimport?command=status或甚至不使用任何命令来轮询dataimporthandler的状态,因为status是默认值。 通过这种方式,您可以获得有关dataimport进程的一些详细信息,您可以查看它是否仍在进行中。 看看可用的命令 。 You can poll the status of the dataimporthandler with the url http://host:port/solr/dataimpor ...solr数据导入搜索(solr data-import search)[2023-10-23]
您可以将所有数据导入默认字段 。 那么您不需要明确提及字段名称。 (虽然你仍然可以,如果你想) 使用Solr的默认schema.xml已包含使用此类“catchall”字段的示例: 首先,必须像任何其他字段一样声明该字段:然后,必须将此新字段声明为默认字段。 每当搜索不到特定字段时,将搜索以下字段: Solr Cloud Data Import Handler复制速度慢(Solr Cloud Data Import Handler slow with replication)[2023-03-07]
也许不是一个正确的答案,但问题似乎解决了。 当然,我们必须做一些事情才能实现这一点,但是我们所能想到的就是删除log4j属性文件中的CONSOLE日志记录并删除它创建的11GB日志文件。 猜猜这可能至少可以为其他人提供其他东西来尝试谁有同样的问题。 Maybe not a proper answer but the issue seemed to resolve itself. Of course we must have done something to make this happen, howeve ...您可能希望使用嵌套实体,外部实体为FileListEntityProcessor ,您的实体(实体)位于其中并使用外部实体公开的变量。 您还需要在该外部实体上将rootEntity属性设置为false,以便为每个内部实体生成文档。 基本上,您需要在现有定义中包含更多级别的实体。 或者,如果你有一些略有不同的文件,只有几个,你可以并排放置几个实体定义,DIH将全部运行它们。 You would want to use nested entities with outside entity being File ...