Solr не может хранить литералы, отправленные в Tika при использовании режима без схемы

Я использую Solr + Cell (Tika) + режим без схемы, и когда я отправляю файлы для индексации, я не вижу ни одного из предоставленных мною литералов, хранящихся в результирующих документах. Вот что я вижу, когда вернусь *:* запрос в интерфейсе администратора. Он содержит только поле и версию идентификатора, но не содержит никаких других литералов или содержимого в файле.

{
"responseHeader": {
"status": 0,
"QTime": 2,
"params": {
  "indent": "true",
  "q": "*:*",
  "_": "1432606194712",
  "wt": "json"
  }
},
"response": {
"numFound": 3,
"start": 0,
"docs": [
  {
    "id": "fa8ab118-4fd2-45db-81ea-d38d533a85bd",
    "_version_": 1502169638339870700
  },
  {
    "id": "550b56ad-fd1f-4340-9a94-4c3cd7491e8d",
    "_version_": 1502191400586838000
  },
  {
    "id": "587b4c68-7a9f-4844-9829-a7d92b6bc98d",
    "_version_": 1502196460453625900
  }
]
}
}

Вот ПОЧТА, которую я отправляю:

POST /solr/archive/update/extract?literal.id=587b4c68-7a9f-4844-9829-a7d92b6bc98d&literal.employeeNumber=3855&literal.name=Monthly+Workforce+Report.pdf&literal.url=http%3A%2F%2Flocalhost%3A8060%2Fapp%2Fhistory%2Fdocument%2F587b4c68-7a9f-4844-9829-a7d92b6bc98d&literal.archivedDate=2015-05-25T22%3A09%3A39.000-0400&wt=javabin&version=2

Я использую SolrJ для отправки этого запроса со следующим кодом:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

    ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract");
    req.addFile(getLocation(), null);
    ModifiableSolrParams params = new ModifiableSolrParams();
    if( id != null ) params.add(ExtractingParams.LITERALS_PREFIX + "id", id.toString() );
    params.add(ExtractingParams.LITERALS_PREFIX + "employeeNumber", employeeNumber);
    params.add(ExtractingParams.LITERALS_PREFIX + "name", name);
    params.add(ExtractingParams.LITERALS_PREFIX + "url", url.toString());
    params.add(ExtractingParams.LITERALS_PREFIX + "archivedDate", format.format(archiveDate));
    if( imageUrl != null ) params.add(ExtractingParams.LITERALS_PREFIX + "imageUrl", imageUrl.toString());
    if( categories != null ) {
        for( String cat : categories ) {
            params.add(ExtractingParams.LITERALS_PREFIX + "category", cat);
        }
    }
    req.setParams( params );
    NamedList<Object> result = server.request( req );

Он создает документ, но не может хранить буквальные значения, которые я предоставляю. И я почти уверен, что ни метаданные, ни содержимое, которое он читает из содержимого файла, тоже не сохраняются.

Я могу подтвердить, что если я использую этот код, он хранит все в порядке:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

    SolrInputDocument doc = new SolrInputDocument();
    doc.addField("id", id.toString());
    doc.addField("employeeNumber", employeeNumber);
    doc.addField("name", name);
    doc.addField("url", url.toString());
    if( imageUrl != null ) doc.addField("imageUrl", imageUrl.toString());
    doc.addField("location", location.getAbsolutePath());
    doc.addField("archivedDate", format.format(archiveDate) );
    if( categories != null ) {
        for( String cat : categories ) {
            doc.addField("category", cat);
        }
    }
    server.add(doc);

Так почему они не хранятся?

0 ответов

Другие вопросы по тегам