我是Solr的新手,并在solr cloud模式下使用Solr 7.3.1 并尝试在solr中使用contentextraction来索引solr中的pdf,office文档。
我用
创建了一个收藏集
bin\solr create -c tsindex -s 2 -rf 2
在SolrJ中,我的代码看起来像
public static void main(String[] args) {
System.out.println("Solr Indexer");
final String solrUrl = "http://localhost:8983/solr/tsindex/";
HttpSolrClient solr = new HttpSolrClient.Builder(solrUrl).build();
String filename="C:\\iSampleDocs\\doc-file.doc";
ContentStreamUpdateRequest solrRequest = new ContentStreamUpdateRequest("/update/extract");
try {
solrRequest.addFile(new File(filename), "application/msword");
solrRequest.setParam("litral.ts_ref", "ts-456123");
//solrRequest.setParam("defaultField", "text");
solrRequest.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
NamedList<Object> result= solr.request(solrRequest);
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}catch ( SolrServerException e) {
e.printStackTrace();
}
}
我遇到了多个问题
尽管我已在Solr Admin UI中将字段ts_ref
创建为text_general
,但此字段完全没有设置。
我的目标是在一个字段中索引包含元数据的完整文档,然后在另一个系统(例如)中设置多个引用文件的文件。 ts_ref字段。但是实际发生的是Solr提取文件的元数据并为每个元数据值创建单独的文件。
我尝试通过data driven schema functionality
禁用bin\solr config -c tsindex -zkHost localhost:9983 -property update.autoCreateFields -value false
从一开始取消对行solrRequest.setParam("defaultField", "text");
的注释时,没有针对所有提取的元数据的单独字段,但是,一旦我注释了这一行并上传文件,元数据随后便再次位于单独的字段中(即使我再次取消评论)。
答案 0 :(得分:1)