Solr Cloud:如何禁用文档(pdf、office)元数据作为字段

Solr Cloud: How to disable document (pdf, office) metadata as fields

我是 Solr 的新手,在 solr 云模式下使用 Solr 7.3.1 并尝试在 solr 中使用 contentextraction 索引 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();
    }
}

我遇到了多个问题

  1. 尽管我在 Solr Admin UI 中将字段 ts_ref 创建为 text_general,但此字段根本没有设置。

  2. 我的目标是在一个字段中索引完整的文档,包括其元数据,然后在另一个系统中设置更多的文件引用文档,例如ts_ref 字段。但实际发生的是 solr 提取文件的元数据并为每个元数据值创建单独的文件。

我已尝试通过 bin\solr config -c tsindex -zkHost localhost:9983 -property update.autoCreateFields -value false

禁用 data driven schema functionality

当我从一开始取消注释行 solrRequest.setParam("defaultField", "text"); 时,提取的所有元数据都没有单独的字段,但是一旦我注释了这一行并上传文件,元数据之后又会在单独的字段中(即使我再次取消注释)。

  1. "litral.ts_ref"这里有错字,少了一个e
  2. 您可以通过使用 uprefix 字段和随之而来的动态字段来实现忽略所有元数据字段。请参阅确切显示这种情况的 doc