source: feeder.py @ 38:8a694e2a6847

Revision 38:8a694e2a6847, 16.8 KB checked in by hagenbruch@phoibe.ub.rub.de, 6 years ago (diff)

Version 0.3

Line 
1#!/usr/bin/env python
2# encoding: utf-8
3"""
4feeder.py
5
6Created by Andre Hagenbruch on 2009-11-08.
7Copyright (c) 2009 University Library Bochum. All rights reserved.
8"""
9import time
10
11import logging
12from mods2solr import Collection
13from solr_util import commit
14from solr_util import optimize
15from solr_util import spellcheck_index
16#from types import ListType
17import datetime
18from feeder_config import path
19
20logging.basicConfig (level=logging.DEBUG,
21                     format='%(asctime)s %(levelname)-4s %(message)s',
22                     datefmt='%a, %d %b %Y %H:%M:%S',
23                     filename='feed.log',
24                     filemode='w',
25                     )
26
27COL_INFO = {
28    'biologie': {
29        'filename': 'biologie-biotechnologie.xml',
30        'institution': 'Fakultaet',
31        'inst_label': 'Biologie und Biotechnologie',
32        'label': 'Biologie und Biotechnologie',
33        'disziplin': 'Naturwissenschaft',
34        'fakid': '19',
35    },
36    'chemie': {
37        'filename': 'chemie-biochemie.xml',
38        'institution': 'Fakultaet',
39        'inst_label': 'Chemie und Biochemie',
40        'label': 'Chemie und Biochemie',
41        'disziplin': 'Naturwissenschaft',
42        'fakid': '18',
43    },
44    'geographie': {
45        'filename': 'geowissenschaften/geographie.xml',
46        'institution': 'Fakultaet',
47        'inst_label': 'Geowissenschaften',
48        'label': 'Geographie',
49        'disziplin': 'Naturwissenschaft',
50        'fakid': '17',
51        'instid': '706',
52    },
53    'geologie': {
54        'filename': 'geowissenschaften/geologie.xml',
55        'institution': 'Fakultaet',
56        'inst_label': 'Geowissenschaften',
57        'label': 'Geologie',
58        'disziplin': 'Naturwissenschaft',
59        'fakid': '17',
60        'instid': '707',
61    },
62    'archaeologie': {
63        'filename': 'geschichte/archaeologie.xml',
64        'institution': 'Fakultaet',
65        'inst_label': 'Geschichtswissenschaft',
66        'label': 'Archäologie',
67        'disziplin': 'Geisteswissenschaft',
68        'fakid': '4',
69        'instid': '516',
70    },
71    'musik': {
72        'filename': 'geschichte/musikwissenschaft.xml',
73        'institution': 'Fakultaet',
74        'inst_label': 'Geschichtswissenschaft',
75        'label': 'Musikwissenschaft',
76        'disziplin': 'Geisteswissenschaft',
77        'fakid': '4',
78        'instid': '514',
79    },
80    'kunstgeschichte': {
81        'filename': 'geschichte/kunstgeschichte.xml',
82        'institution': 'Fakultaet',
83        'inst_label': 'Geschichtswissenschaft',
84        'label': 'Kunstgeschichte',
85        'disziplin': 'Geisteswissenschaft',
86        'fakid': '4',
87        'instid': '514',
88    },
89    'geschichte': {
90        'filename': 'geschichte/geschichte.xml',
91        'institution': 'Fakultaet',
92        'inst_label': 'Geschichtswissenschaft',
93        'label': 'Geschichte',
94        'disziplin': 'Geisteswissenschaft',
95        'fakid': '4',
96        'instid': '511',
97    },
98    'jura': {
99        'filename': 'jura.xml',
100        'institution': 'Fakultaet',
101        'inst_label': 'Jura',
102        'disziplin': 'Geisteswissenschaft',
103        'fakid': '6',
104    },
105    'maschinenbau': {
106        'filename': 'maschinenbau.xml',
107        'institution': 'Fakultaet',
108        'inst_label': 'Maschinenbau',
109        'disziplin': 'Ingenieurwissenschaft',
110        'fakid': '13',
111    },
112    'medizin': {
113        #'filename': ['medizin_1.xml', 'medizin_2.xml', 'medizin_3.xml'],
114        'filename': 'medizin.xml',
115        'institution': 'Fakultaet',
116        'inst_label': 'Medizin',
117        'disziplin': 'Medizin',
118        'fakid': '20',
119    },
120    'anglistik': {
121        'filename': 'philologie/anglistik.xml',
122        'institution': 'Fakultaet',
123        'inst_label': 'Philologie',
124        'label': 'Anglistik',
125        'disziplin': 'Geisteswissenschaft',
126        'fakid': '5',
127        'instid': '524',
128    },
129    'islam': {
130        'filename': 'philologie/orient-islam.xml',
131        'institution': 'Fakultaet',
132        'inst_label': 'Philologie',
133        'label': 'Orientalistik und Islamwissenschaft',
134        'disziplin': 'Geisteswissenschaft',
135        'fakid': '5',
136        'instid': '?',
137    },
138    'medienwissenschaft': {
139        'filename': 'philologie/medienwissenschaft.xml',
140        'institution': 'Fakultaet',
141        'inst_label': 'Philologie',
142        'label': 'Medienwissenschaft',
143        'disziplin': 'Geisteswissenschaft',
144        'fakid': '5',
145        'instid': '?',
146    },
147    'klassphil': {
148        'filename': 'philologie/klass-philologie.xml',
149        'institution': 'Fakultaet',
150        'inst_label': 'Philologie',
151        'label': 'Klassische Philologie',
152        'disziplin': 'Geisteswissenschaft',
153        'fakid': '5',
154        'instid': '?',
155    },
156    'germanistik': {
157        'filename': 'philologie/germanistik.xml',
158        'institution': 'Fakultaet',
159        'inst_label': 'Philologie',
160        'label': 'Germanistik',
161        'disziplin': 'Geisteswissenschaft',
162        'fakid': '5',
163        'instid': '523',
164    },
165    'linguistik': {
166        'filename': 'philologie/sprachwissenschaft.xml',
167        'institution': 'Fakultaet',
168        'inst_label': 'Philologie',
169        'label': 'Linguistik und Computerlinguistik',
170        'disziplin': 'Geisteswissenschaft',
171        'fakid': '5',
172        'instid': '521',
173    },
174    'romanistik': {
175        'filename': 'philologie/romanistik.xml',
176        'institution': 'Fakultaet',
177        'inst_label': 'Philologie',
178        'label': 'Romanistik',
179        'disziplin': 'Geisteswissenschaft',
180        'fakid': '5',
181        'instid': '525',
182    },
183    'philosophie': {
184        'filename': 'philosoph-erzwiss/philosophie.xml',
185        'institution': 'Fakultaet',
186        'inst_label': 'Philosophie und Erziehungswissenschaft',
187        'label': 'Philosophie',
188        'disziplin': 'Geisteswissenschaft',
189        'fakid': '3',
190        'instid': '506'
191    },
192    'physik': {
193        'filename': 'physik-astronomie.xml',
194        'institution': 'Fakultaet',
195        'inst_label': 'Physik und Astronomie',
196        'label': 'Physik und Astronomie',
197        'disziplin': 'Naturwissenschaft',
198        'fakid': '16',
199    },
200    'psychologie': {
201        'filename': 'psychologie.xml',
202        'institution': 'Fakultaet',
203        'inst_label': 'Psychologie',
204        'disziplin': 'Geisteswissenschaft',
205        'fakid': '11',
206    },
207    'sozialwissenschaft': {
208        'filename': 'sozialwissenschaften.xml',
209        'institution': 'Fakultaet',
210        'inst_label': 'Sozialwissenschaft',
211        'disziplin': 'Geisteswissenschaft',
212        'fakid': '8',
213    },
214    'wirtschaftswissenschaften': {
215        'filename': 'wirtschaftswissenschaften.xml',
216        'institution': 'Fakultaet',
217        'inst_label': 'Wirtschaftswissenschaften',
218        'disziplin': 'Geisteswissenschaft',
219        'fakid': '7',
220    },
221    'lehrerbildung': {
222        'filename': 'zentrale-einrichtungen/zb-lehrerbildung.xml',
223        'institution': 'Zentrale wissenschaftliche Einrichtungen',
224        'inst_label': 'Lehrerbildung',
225        'disziplin': 'Geisteswissenschaft',
226        'fakid': '0',
227        'instid': '0012',
228    },
229    'neuroinformatik': {
230        'filename': 'zentrale-einrichtungen/zwe-neuroinformatik.xml',
231        'institution': 'Zentrale wissenschaftliche Einrichtungen',
232        'inst_label': 'Neuroinformatik',
233        'disziplin': 'Naturwissenschaft',
234        'fakid': '0',
235        'instid': '925',
236    },
237    'neuroscience': {
238        'filename': 'zentrale-einrichtungen/zb-rd-neuroscience.xml',
239        'institution': 'Zentrale wissenschaftliche Einrichtungen',
240        'inst_label': 'Research Department Neuroscience',
241        'label': 'Research Department Neuroscience',
242        'disziplin': 'Naturwissenschaft',
243        'fakid': '0',
244        'instid': '980',
245    },
246    'etechnik': {
247        'filename': 'elektrotechnik-informationstechnik.xml',
248        'institution': 'Fakultaet',
249        'inst_label': 'Elektrotechnik und Informationstechnik',
250        'label': 'Elektrotechnik und Informationstechnik',
251        'disziplin': 'Ingenieurwissenschaft',
252        'fakid': '14',
253    },
254    'bauwiss': {
255        'filename': 'bau-umwelt.xml',
256        'institution': 'Fakultaet',
257        'inst_label': 'Bau- und Umweltingenieurwissenschaften',
258        'label': 'Bau- und Umweltingenieurwissenschaften',
259        'disziplin': 'Ingenieurwissenschaft',
260        'fakid': '12',
261    },
262    'mathematik': {
263        'filename': 'mathematik.xml',
264        'institution': 'Fakultaet',
265        'inst_label': 'Mathematik',
266        'disziplin': 'Naturwissenschaft',
267        'fakid': '15',
268    },
269    'kaththeol': {
270        'filename':'katholische-theologie.xml',
271        'institution': 'Fakultaet',
272        'inst_label': 'Katholische Theologie',
273        'label': 'Katholische Theologie',
274        'disziplin': 'Geisteswissenschaft',
275        'fakid': '2',
276    },
277    'evtheol': {
278        'filename':'evangelische-theologie.xml',
279        'institution': 'Fakultaet',
280        'inst_label': 'Evangelische Theologie',
281        'label': 'Evangelische Theologie',
282        'disziplin': 'Geisteswissenschaft',
283        'fakid': '1',
284    },
285    'slavistik': {
286        'filename': 'philologie/slavistik.xml',
287        'institution': 'Fakultaet',
288        'inst_label': 'Philologie',
289        'label': 'Slavistik',
290        'disziplin': 'Geisteswissenschaft',
291        'fakid': '5',
292        'instid': '526',
293    },
294    'erziehungswissenschaft': {
295        'filename': 'philosoph-erzwiss/erziehungswissenschaft.xml',
296        'institution': 'Fakultaet',
297        'inst_label': 'Philosophie und Erziehungswissenschaft',
298        'label': 'Erziehungswissenschaft',
299        'disziplin': 'Geisteswissenschaft',
300        'fakid': '3',
301        'instid': '504',
302    },
303    'theaterwissenschaft': {
304        'filename': 'philologie/theaterwissenschaft.xml',
305        'institution': 'Fakultaet',
306        'inst_label': 'Philologie',
307        'label': 'Theaterwissenschaft',
308        'disziplin': 'Geisteswissenschaft',
309        'fakid': '5',
310        'instid': '5?',
311    },
312    'ostasienwissenschaften': {
313        'filename': 'ostasienwissenschaften.xml',
314        'institution': 'Fakultaet',
315        'inst_label': 'Ostasienwissenschaften',
316        'label': 'Ostasienwissenschaften',
317        'disziplin': 'Geisteswissenschaft',
318        'fakid': '?',
319        'instid': '?',
320    },
321    'arbeitswissenschaft': {
322        'filename': 'zentrale-einrichtungen/zwe-arbeitswissenschaft.xml',
323        'institution': 'Zentrale wissenschaftliche Einrichtungen',
324        'inst_label': 'Arbeitswissenschaft',
325        'label': 'Arbeitswissenschaft',
326        'disziplin': 'Geisteswissenschaft',
327        'fakid': '?',
328        'instid': '?',
329    },
330    'sportwissenschaft': {
331        'filename': 'sportwissenschaft.xml',
332        'institution': 'Fakultaet',
333        'inst_label': 'Sportwissenschaft',
334        'label': 'Sportwissenschaft',
335        'disziplin': 'Geisteswissenschaft',
336        'fakid': '?',
337        'instid': '?',
338    },
339    'universitaetsbibliothek': {
340        'filename': 'zentrale-einrichtungen/zb-universitaetsbibliothek.xml',
341        'institution': 'Zentrale wissenschaftliche Einrichtungen',
342        'inst_label': 'Universitätsbibliothek',
343        'label': 'Universitätsbibliothek',
344        'disziplin': 'Geisteswissenschaft',
345        'fakid': '?',
346        'instid': '?',
347    },
348    'sozialebewegungen': {
349        'filename': 'zentrale-einrichtungen/zb-soziale-bewegungen.xml',
350        'institution': 'Zentrale wissenschaftliche Einrichtungen',
351        'inst_label': 'Soziale Bewegungen',
352        'label': 'Soziale Bewegungen',
353        'disziplin': 'Geisteswissenschaft',
354        'fakid': '?',
355        'instid': '?',
356    },
357    'mercator': {
358        'filename': 'zentrale-einrichtungen/zb-mercator-research-groups.xml',
359        'institution': 'Zentrale wissenschaftliche Einrichtungen',
360        'inst_label': 'Mercator Research Groups',
361        'label': 'Mercator Research Groups',
362        'disziplin': 'Geisteswissenschaft',
363        'fakid': '?',
364        'instid': '?',
365    },
366    'pse': {
367        'filename': 'zentrale-einrichtungen/zb-prof-school-education.xml',
368        'institution': 'Zentrale wissenschaftliche Einrichtungen',
369        'inst_label': 'Professional School of Education',
370        'label': 'Professional School of Education',
371        'disziplin': 'Geisteswissenschaft',
372        'fakid': '?',
373        'instid': '?',
374    },
375    'ifhv': {
376        'filename': 'zentrale-einrichtungen/zwe-ifhv.xml',
377        'institution': 'Zentrale wissenschaftliche Einrichtungen',
378        'inst_label': 'IFHV',
379        'label': 'IFHV',
380        'disziplin': 'Geisteswissenschaft',
381        'fakid': '?',
382        'instid': '?',
383    },
384    'icams': {
385        'filename': 'zentrale-einrichtungen/zb-icams.xml',
386        'institution': 'Zentrale wissenschaftliche Einrichtungen',
387        'inst_label': 'ICAMS',
388        'label': 'ICAMS',
389        'disziplin': 'Geisteswissenschaft',
390        'fakid': '?',
391        'instid': '?',
392    },
393    'musischeszentrum': {
394        'filename': 'zentrale-einrichtungen/zb-musisches-zentrum.xml',
395        'institution': 'Zentrale wissenschaftliche Einrichtungen',
396        'inst_label': 'Musisches Zentrum',
397        'label': 'Musisches Zentrum',
398        'disziplin': 'Geisteswissenschaft',
399        'fakid': '?',
400        'instid': '?',
401    },
402    'ceres': {
403        'filename': 'zentrale-einrichtungen/zb-rd-ceres.xml',
404        'institution': 'Zentrale wissenschaftliche Einrichtungen',
405        'inst_label': 'CERES',
406        'label': 'CERES',
407        'disziplin': 'Geisteswissenschaft',
408        'fakid': '?',
409        'instid': '?',
410    },
411        'rubion': {
412        'filename': 'zentrale-einrichtungen/zb-rubion.xml',
413        'institution': 'Zentrale wissenschaftliche Einrichtungen',
414        'inst_label': 'RUBION',
415        'label': 'RUBION',
416        'disziplin': 'Naturwissenschaft',
417        'fakid': '?',
418        'instid': '?',
419    },
420    'ifsc': {
421        'filename': 'zentrale-einrichtungen/zb-rd-ifsc.xml',
422        'institution': 'Zentrale wissenschaftliche Einrichtungen',
423        'inst_label': 'IFSC',
424        'label': 'IFSC',
425        'disziplin': 'Naturwissenschaft',
426        'fakid': '?',
427        'instid': '?',
428    },
429    'resolv': {
430        'filename': 'zentrale-einrichtungen/zb-ec-resolv.xml',
431        'institution': 'Zentrale wissenschaftliche Einrichtungen',
432        'inst_label': 'RESOLV',
433        'label': 'RESOLV',
434        'disziplin': 'Geisteswissenschaft',
435        'fakid': '?',
436        'instid': '?',
437    },
438}
439
440def main():
441       
442    #Alle Kollektionen konvertieren
443#    start = datetime.datetime.now ()
444#    for subject in COL_INFO:
445#        logging.info(subject)#.encode('utf8')
446#        col = Collection(filename=path + COL_INFO.get(subject).get('filename', ''), fach=COL_INFO.get(subject).get('label', subject), disziplin=COL_INFO.get(subject).get('disziplin', ''), institution=COL_INFO.get(subject).get('institution', ''), inst_label=COL_INFO.get(subject).get('inst_label', ''), debug=False, fakid=COL_INFO.get(subject).get('fakid', ''), instid=COL_INFO.get(subject).get('instid', ''))
447#        col.convert()
448#    end = datetime.datetime.now ()
449#    logging.info('KOMPLETT: %s' % (end - start))
450
451    # Alle Kollektionen indexieren
452    start = datetime.datetime.now ()
453    for subject in COL_INFO:
454        logging.info(subject)#.encode('utf8')
455        col = Collection(filename=path + COL_INFO.get(subject).get('filename', ''), fach=COL_INFO.get(subject).get('label', subject), disziplin=COL_INFO.get(subject).get('disziplin', ''), institution=COL_INFO.get(subject).get('institution', ''), inst_label=COL_INFO.get(subject).get('inst_label', ''), debug=False, fakid=COL_INFO.get(subject).get('fakid', ''), instid=COL_INFO.get(subject).get('instid', ''))
456        col.feed()
457    optimize()
458    time.sleep(90)
459    spellcheck_index()
460    commit()
461    end = datetime.datetime.now ()
462    logging.info('KOMPLETT: %s' % (end - start))
463       
464    #Eine Kollektion konvertieren
465#    test = Collection(filename=path + 'elektrotechnik-informationstechnik.xml', fach='Medizin', disziplin='Medizin', institution = 'Fakultaet', inst_label = 'Medizin', debug = True)
466#    test.convert()
467
468# Eine Kollektion indexieren
469    #path = '/home/hagenbruch/dev/bibliographie-index/mods-xml/'
470#    test = Collection(filename=path + 'biologie-biotechnologie.xml', fach='Biologie und Biotechnologie', disziplin='Naturwissenschaft', institution = 'Fakultaet', inst_label = 'Biologie und Biotechnologie', debug = False)
471#    test.feed()
472#    test = Collection(filename=path + 'mathematik.xml', fach='Mathematik', disziplin='Naturwissenschaft', institution = 'Fakultaet', inst_label = 'Mathematik', debug = False)
473#    test.feed()
474
475#    test = Collection(filename=path + 'chemie-biochemie.xml', fach='Chemie und Biochemie', disziplin='Naturwissenschaft', institution = 'Fakultaet', inst_label = 'Chemie und Biochemie', debug = False)
476#    test.feed()
477
478#    test = Collection(filename=path + 'wirtschaftswissenschaften.xml', fach='Wirtschaftswissenschaften', disziplin='Geisteswissenscahft', institution = 'Fakultaet', inst_label = 'Wirtschaftswissenschaften', debug = False)
479#    test.feed()
480
481
482
483if __name__ == '__main__':
484    main()
Note: See TracBrowser for help on using the repository browser.