Solr Cloud: как отключить метаданные документа (pdf, office) в виде полей
Я новичок в Solr и использую Solr 7.3.1 в облачном режиме solr и пытаюсь индексировать pdf, офисные документы в solr, используя contentextraction в solr.
Я создал коллекцию с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();
}
}
Я получаю несколько вопросов
Хотя я создал поле
ts_ref
какtext_general
в Solr Admin UI это поле вообще не устанавливается.Моя цель состоит в том, чтобы проиндексировать весь документ, включая его метаданные, в одном поле, а затем установить пару файлов, ссылающихся на документ, в другой системе, например, в поле ts_ref. Но на самом деле происходит то, что solr извлекает метаданные файлов и создает отдельные поля для каждого значения метаданных.
Я пытался отключить data driven schema functionality
от bin\solr config -c tsindex -zkHost localhost:9983 -property update.autoCreateFields -value false
Когда я раскомментирую строку solrRequest.setParam("defaultField", "text");
с самого начала не существует отдельных полей для всех извлеченных метаданных, но как только я комментирую эту строку и загружаю файлы, метаданные впоследствии снова оказываются в отдельных полях (даже если я снова раскомментирую их).
1 ответ
- "litral.ts_ref" здесь есть опечатка, пропущенная
- Вы можете добиться игнорирования всех полей метаданных, используя поле uprefix и динамическое поле, которое сопровождает его. Смотрите документ, который показывает именно этот случай.