solrj 文件索引问题

先上代码

public class SolrTest {
    public static final String SOLR_URL="http://localhost:8080/solr/core";
    private SolrServer solr=null;
    @Test
    public void getSolrTest() throws Exception{

        String fileName = "D:\\projects\\solr\\home\\docs\\solr-word.pdf";
        String solrId = "solr-word.pdf";
        solr = new HttpSolrServer(SOLR_URL);

        ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");
        String contentType="application/pdf";
        up.addFile(new File(fileName), contentType);
        up.setParam("literal.id", solrId);
        up.setParam("uprefix", "attr_");
        up.setParam("fmap.content", "attr_content");
        up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

        solr.request(up);

        QueryResponse rsp = solr.query(new SolrQuery("*:*"));
        System.out.println(rsp);
    }
}

测试运行,随之问题来了。

BUG_1:

org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: java.lang.NoClassDefFoundError: org/apache/xml/serialize/BaseMarkupSerializer
    at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:552)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206)

问题:缺少解析xml格式文件的jar包
解决方案:下载解析jar包放入solr项目下的lib文件夹,下载地址http://xerces.apache.org/mirrors.cgi,将下载文件中的 xercesImpl.jar与xml-apis.jar放入lib文件夹。

BUG_2:

[doc=solr-word.pdf] missing required field: filePath

问题:schema.xml文件中多出无法解析的字段filePath
解决方法:删掉filePath的field字段即可

把两个错误搞定后,pdf与doc文件都可以被成功解析索引。
schema.xml和solrconfig.xml就不贴出来了,很容易找到可以参考的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值