问题1:
一开始我在这个网站实践http://wiki.apache.org/solr/DIHQuickStart#Index_the_fields_in_different_names
结果到了第五步(Step 5 : Run the command http://solr-host:port/solr/dataimport?command=full-import.)就出现了这样的错误:
HTTP ERROR 404
Problem accessing /solr/dataimport. Reason:
NOT_FOUND
Powered by Jetty://
其实是因为之前在启动solr的时候弄错了,我之前是用"java -jar start.jar"来启动的,但是我自己建的文件目录是这样的:
在XiaoLongTest里面有“README.txt”文件,打开它,它会告诉你该怎么做。另外,当你成功启动后发现没有你自己创建的文件怎么办:
打开“XiaoLongTest”里面的solr.xml跟着他的模样插入一条就好了,依葫芦画瓢。然后在启动一下就有了。
问题2(在data-config.xml里面配置数据源的问题):
<dataSource type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.sqlServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=test"
user="xx"
password="xx"/>
如果用的是postgres(大象)数据库,那么就这样配置:
<dataSource name="JdbcDataSource"
driver="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5433/iclass-dev" (端口号自己看)
user="xxx"
password="xxx"
/>
驱动包要用复制粘贴的方式方到相应的lib里面。
问题 3(给sorl设定IK分词器)
schema.xml里面不是有很多的fieldType吗,其中class为solr.TextField的类型是可以被分词器分词的,我在一个fieldType名字是“text”的类型里面去设置。ik分词器需要到网上去下载,那下什么版本的其实和你的solr版本有关,如果您使用的是Solr1.3或者v2.9之前的Lucene,请下载IK Analyzer3.1.6GA使用! IK Analyzer3.2.X仅支持Lucene3.0以上版本。
我下载了最新的版本的ik,那怎么配置到schema.xml里面呢?其实下载的那个包里面都有一个pdf是教程,照里面的做就好了,配置好了后,在把你下载下来的ik的根目录下面的一个Jar文件,复制到相应文件的Lib下面,就好了。
问题 4(org.apache.solr.common.solrException: Document [null] missing required field: id)
<field name="id" type="long" indexed="true" stored="true" required="true" />后面的required去掉。
问题 5(Could not open the editor: Resource is out of sync with the file system)
当右击default.properties打开时,出现下图错误:
解决方法:右击工程,Refresh一下就好了。
原因:Usually happens when some files are edited outside of eclipse。
问题 6(Delta Import Failed)
我在solr里面进行增量导入的时候,出现了这样的错误:
我的data-config.xml里面的document是这样写的:
<document> <entity name="Member" query="select id,fullName,dtype,avatarUrl from Member where isDeleted=false" deltaQuery="select id from Member where lastModifyTime > '${dataimporter.last_index_time}' and isDeleted=false"> <!-- deltaimportQuery="select id,avatarUrl from Member where id = '${dataimporter.delta.id}'" --> </entity> <document>
现在问题解决了,原因就是没有在里面加上 pk="id" (其中这个id是和下面的deltaQuery里面的字段id一样)
正确的应该是这样的:
<document> <entity name="Member" pk="id" query="select id,avatarUrl from Member where id = '${dataimporter.delta.id}'" --> </entity> <document>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。