كيفية ربط المستند الممسوح مع محتوى النص الخاص به لجعله قابل للبحث؟

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

  •  29-09-2019
  •  | 
  •  

سؤال

لدي مستندات PDF تحتوي على عدة صور/صفحات من المستندات الممسوحة ضوئيًا. يأتي محتوى النص (الذي ينتج عنه OCR) في ملفات XML منفصلة.

هل من الممكن استخدام/ربط المحتوى النصي من XML بطريقة ما إلى ملفات PDF الخاصة بي؟ (من الناحية المثالية ، لن يتم ترك ملفات إضافية في المستودع لإرباك المستخدمين غير المدركين.)

كما قيل لي أن هناك حدًا 65 ألفًا على خاصية نصية ، لذلك لا يمكنني ببساطة وضع محتوى النص في خاصية على ، حيث قد يتجاوز هذا الحد بسهولة.

تم تقديم اقتراح لتمرير دفق مع محتوى النص إلى CM: خاصية محتوى ملف PDF الخاص بي. لقد ضاعت هنا نوعًا ما ، لأن IMO وهذا يعني إما أنني أقدم مرجعًا أو أقوم بتعيين سلسلة ضخمة مرة أخرى. الأول يعني أنه يجب الحفاظ على محتوى النص في مكان ما كوثيقة منفصلة. في وقت لاحق يبدو وكأنني سأضرب الحد 65k مرة أخرى.
أعتقد أيضًا أن إعداد 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

(يبدو أن الشيء المهم هو وضع المحتوى بعد، بعدما يتم تعيين mimetype والترميز. وإلا فإن المحتوى/الخاصية غير قابلة للبحث.)

مع هذا النهج ، ليست هناك حاجة لإخفاء المستندات النصية المرتبطة ، لا توجد أي شيء.

نصائح أخرى

سو ، من السهل جدًا ... ما يجب القيام به هو تحديد خاصية من النوع "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 ، كما هو متوقع ؛ لكن هذا النهج لا يستخدم لي إلا).

نأمل أن يوفر بعض الوقت إلى غيرها من الأنباء في الهواء الطلق. قون

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top