Как связать отсканированный документ с помощью текстового контента, чтобы сделать его доступным для поиска?

StackOverflow https://stackoverflow.com/questions/3912885

  •  29-09-2019
  •  | 
  •  

Вопрос

У меня есть PDF -документы, содержащие несколько изображений/страниц отсканированных документов. Их (OCR-производный) текстовый содержимое поставляется в отдельных файлах XML.

Можно ли использовать/связать текстовый содержимое от XML как -то с моими файлами PDF? (В идеале в репозитории не останется никаких дополнительных файлов, чтобы запутать неосведомленных пользователей.)

Как мне сказали, что на текстовом свойстве есть ограничение в 65 тыс., Поэтому я не могу просто поместить текстовое содержание в свойство на, поскольку PDF может легко превышать этот предел.

Было предложено передать поток с текстовым контентом в CM: свойство контента моего PDF -файла. Я как бы потерял здесь, так как IMO это означает, что либо я предоставляю ссылку, либо снова назначаю огромную строку. Первый будет означать, что текстовое содержание должно быть сохранено где -то в качестве отдельного документа. Позднее звучит так, как будто я снова нажал предел 65 тыс.
Также я думаю, что настройка CM: Контент, вероятно, удалит сам контент PDF. Мне нужны двоичные данные PDF, чтобы оставаться нетронутыми.

Вот где Предложение обсуждается. Отказ Я в настоящее время пробую это в любом случае.

Это было полезно?

Решение 2

Еще один способ достичь того, что мне нужно, - это установить my_text_content_property с использованием contentservice ...

ContentWriter writer = getContentService().getWriter(pdfNodeRef, MyModel.MY_TEXT_CONTENT_PROPERTY, true);
writer.setMimetype("text/plain");
writer.setEncoding("UTF-8");
writer.putContent(stringFromXmlDescription); // the source XML gets thrown away

(Похоже, важным является то, чтобы положить контент после Миметип и кодирование установлены. В противном случае контент/свойство не доступно для поиска.)

С таким подходом нет необходимости скрывать связанные текстовые документы, их нет.

Другие советы

Су, это на самом деле довольно просто ... что нужно сделать, так это определить свойство типа «D: Content» в вашем документе; Я делаю это с помощью аспекта ...

model.xml:

<aspects>
    <aspect name="mm:my_aspect">
...
            <property name="mm:myTextContentProperty">
                <type>d:content</type>
            </property>
        </properties>
    </aspect>
</aspects>

Затем, когда у меня есть как PDF, так и его текстовое представление в репозитории, я связываю эти два, добавляя аспект и заполняя свойство ...

getNodeService().addAspect(pdfNodeRef, myAspect, null);
getNodeService().setProperty(pdfNodeRef, MyModel.MY_TEXT_CONTENT_PROPERTY, new ContentData("store://....bin", "text/plain", size, "UTF-8"));

Теперь PDF можно найти через оба с помощью запросов, даже если он не содержит никаких текстовых данных ...

"@\\{http\\://mymodel.ns/content/1.0\\}myTextContentProperty:\"" + string + "\""
"TEXT:\"" + string + "\""

Позднее также намекают здесь, и я думаю, что именно так работает регулярный поиск в веб -клиенте Alfresco, потому что теперь PDF доступен с помощью обычного ввода поиска.
Есть одна проблема: поиск плюет документ PDF, а также документ, который я ссылаюсь, используя свойство. Итак, теперь мне нужно спрятать позже от результатов поиска ...

(При поиске с использованием первого запроса находится только PDF, как и ожидалось; но этот подход мало используется для меня.)

Надеемся, что это экономит некоторое время на другие Alfresco-Newbies. :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top