2011-07-25 20 views
8

मेरे पास पीडीएफ का एक गुच्छा है (कुछ 100s)। उनके पास उचित संरचना नहीं है और न ही उनके पास विशेष क्षेत्र हैं। उनके पास बहुत सारे पाठ हैं।मैं इंडेक्स पीडीएफ फाइलों और खोजशब्दों की खोज कैसे करूं?

मुझे क्या करना कोशिश कर रहा हूँ क्या:

सूचकांक पीडीएफ़ और सूचकांक के खिलाफ कुछ कीवर्ड के लिए खोज। मुझे यह जानने में दिलचस्पी है कि क्या यह विशेष कीवर्ड पीडीएफ दस्तावेज़ में है और यदि ऐसा है, तो मुझे वह लाइन चाहिए जहां कीवर्ड मिल जाए। यदि मैंने पीडीएफ दस्तावेज़ में 'Google' की खोज की है, तो उस शब्द में, मैं देखना चाहता हूं कि 'Google एक बेहतरीन खोज इंजन है' जो पीडीएफ में रेखा है।

कैसे मैं ऐसा करने का फैसला किया:

या तो उपयोग SOLR या हूँश लेकिन SOLR इनबिल्ट पीडीएफ समर्थन के लिए अच्छी लग रही है। मैं पाइथन में कोड करना पसंद करता हूं और सनबर्स्ट एसओएलआर पर एक रैपर है जो मुझे पसंद है। एसओएलआर का नमूना/उदाहरण प्रोजेक्ट में कुछ मूल्य तुलना आधारित स्कीमा फ़ाइल है। अब मुझे यकीन नहीं है कि क्या मैं अपनी समस्या का उत्तर देने के लिए एसओएलआर का उपयोग कर सकता हूं।

आप क्या सुझाव देते हैं? किसी भी इनपुट की बहुत सराहना की है।

+1

क्या आप प्रत्येक पीडीएफ को प्रत्येक शब्द या वाक्यांश में सूचीबद्ध करने का प्रस्ताव कर रहे हैं? यदि नहीं, तो आप कीवर्ड की एक सूची कैसे तैयार करेंगे? – smci

+0

मेरे पास वास्तव में कीवर्ड की एक सूची है। मैं पीडीएफ में सभी सामग्री को इंडेक्स करना चाहता हूं और फिर अपने कीवर्ड का उपयोग करके उस इंडेक्स के खिलाफ एक खोज चलाता हूं। – ThinkCode

उत्तर

5

मुझे लगता है कि सौर आपकी आवश्यकताओं को फिट करता है।

"हाइलाइटिंग" सुविधा वह है जो आप ढूंढ रहे हैं .. इसके लिए आपको ल्यूसीन इंडेक्स में दस्तावेज़ों को इंडेक्स और स्टोर करना होगा।

हाइलाइटिंग सुविधा एक स्निप हो जाती है, जहां खोजी गई पाठ चिह्नित होती है। इस पर

देखो: http://wiki.apache.org/solr/HighlightingParameters

+0

मैं डिफ़ॉल्ट टेम्पलेट में खोज परिणामों में 'हाइलाइटिंग' को सक्षम/प्रदर्शित कैसे करूं? अभी मैं केवल एक्सएमएल (लेखक, content_type, आईडी, अंतिम संशोधित और शीर्षक) देखता हूं। धन्यवाद! – ThinkCode

+0

टर्मविचर्स को nedds को हाइलाइट करते हुए http://wiki.apache.org/solr/TermVectorComponent - इसलिए आपको फिर से सक्रिय करना होगा सक्रिय टर्मवॉक्टर कॉम्पोनेंट –

+0

बहुत धन्यवाद, अब यह पीडीएफ से सभी पाठ प्रदर्शित कर रहा है। मैंने कॉपी किया है सभी पाठ फ़ील्ड 'टेक्स्ट' में। अब जब मैं खोज करता हूं, तो यह सभी टेक्स्ट प्रदर्शित करता है जबकि मैं केवल 'टेक्स्ट' की रेखा चाहता हूं जिसमें मिलान करने वाली स्ट्रिंग है। मेरी स्कीमा फ़ाइल: http://pastebin.com/Cp1CsZ9Z – ThinkCode

2

मैं एक बार pdftotext के रूप में उपयोगिताओं के साथ पाठ को पीडीएफ फाइलों को परिवर्तित करके इस हल (pdftohtml भी काम करेगा मुझे लगता है), एक कुछ प्रकार के 'कैश' पैदा होता है। फिर कुछ grep का उपयोग करके मैंने कीवर्ड के लिए टेक्स्ट फ़ाइल कैश की खोज की।

यह आपके प्रस्तावित समाधान से थोड़ा अलग है, लेकिन मैं कल्पना कर सकता हूं कि आप इसे पायथन से भी कॉल कर सकते हैं।

+1

धन्यवाद टिम। आपका समाधान मेरा पहला दृष्टिकोण था जब मुझे एसओएलआर मिला।एसओएलआर मांग पर और बहुत तेज़ करता है। बस सोच रहा है कि मेरे संदर्भ में एसओएलआर का उपयोग किया जा सकता है और मुझे लगता है कि मैं कर सकता हूं! – ThinkCode

+0

ठीक है कि अच्छा लगता है :) शायद यह 'ऑफलाइन' समाधान किसी और के लिए इसे पढ़ने के लिए उपयोगी हो सकता है ... – Tim

4

एक और ऑफ़लाइन/स्टैंडअलोन समाधान:

  • https://github.com/WolfgangFahl/pdfindexer यह PDFBox और अपाचे Lucene का उपयोग करता है और प्रत्येक कीवर्ड पाया के लिए पीडीएफ फाइल में पृष्ठों के लिंक के साथ एक एचटीएमएल इंडेक्स फ़ाइल पैदा करेगा।
संबंधित मुद्दे