solr---检查pdf word txt实现原理

本文档展示了如何使用Solr对PDF、Word、TXT等文件进行索引和查询。通过配置data-config.xml,利用FileListEntityProcessor和TikaEntityProcessor解析文件内容,提取元数据和正文,并通过DataImportHandler进行数据导入。
摘要由CSDN通过智能技术生成

1.将 pdf文件上传到solr,然后解析,索引,最后查询

一:首先建立Core
在core下面新建lib文件夹,存放相关的jar包,如图所示:
lib文件夹打开所示,这些类库在solr6.2.1解压之后都能找到:
修改solrconfig.xml,把刚刚建的lib文件夹下的jar包引入
增加配置,如果有则不用添加:
配置managed-schema文件:
 
 
二:Java代码solrj操作(6.2.1版本) 
 package com.journal.controller;

import java.io.File;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;

/**
* 从PDF创建索引 <功能详细描述>
*
* @author Administrator
* @version [版本号, 2014年3月18日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class test {

public static void main(String[] args) {
String fileName = "d:/606-011.pdf";
String solrId = "606-011.pdf";
try {
indexFilesSolrCell(fileName, solrId);
} catch (IOException e) {
e.printStackTrace();
} catch (SolrServerException e) {
e.printStackTrace();
}

}

/**
* 从文件创建索引 <功能详细描述>
*
* @param fileName
* @param solrId
* @see [类、类#方法、类#成员]
*/
public static void indexFilesSolrCell(String fileName, String solrId)
throws IOException, SolrServerException {
String urlString = "http://localhost:8983/solr/core";
SolrServer solr = new HttpSolrServer(urlString);
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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值