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();
}
}
我遇到了多个问题
尽管我在 Solr Admin UI 中将字段 ts_ref
创建为 text_general
,但此字段根本没有设置。
我的目标是在一个字段中索引完整的文档,包括其元数据,然后在另一个系统中设置更多的文件引用文档,例如ts_ref 字段。但实际发生的是 solr 提取文件的元数据并为每个元数据值创建单独的文件。
我已尝试通过 bin\solr config -c tsindex -zkHost localhost:9983 -property update.autoCreateFields -value false
禁用 data driven schema functionality
当我从一开始取消注释行 solrRequest.setParam("defaultField", "text");
时,提取的所有元数据都没有单独的字段,但是一旦我注释了这一行并上传文件,元数据之后又会在单独的字段中(即使我再次取消注释)。
- "litral.ts_ref"这里有错字,少了一个e
- 您可以通过使用 uprefix 字段和随之而来的动态字段来实现忽略所有元数据字段。请参阅确切显示这种情况的 doc。
我是 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();
}
}
我遇到了多个问题
尽管我在 Solr Admin UI 中将字段
ts_ref
创建为text_general
,但此字段根本没有设置。我的目标是在一个字段中索引完整的文档,包括其元数据,然后在另一个系统中设置更多的文件引用文档,例如ts_ref 字段。但实际发生的是 solr 提取文件的元数据并为每个元数据值创建单独的文件。
我已尝试通过 bin\solr config -c tsindex -zkHost localhost:9983 -property update.autoCreateFields -value false
data driven schema functionality
当我从一开始取消注释行 solrRequest.setParam("defaultField", "text");
时,提取的所有元数据都没有单独的字段,但是一旦我注释了这一行并上传文件,元数据之后又会在单独的字段中(即使我再次取消注释)。
- "litral.ts_ref"这里有错字,少了一个e
- 您可以通过使用 uprefix 字段和随之而来的动态字段来实现忽略所有元数据字段。请参阅确切显示这种情况的 doc。