source: solr_util.py @ 38:8a694e2a6847

Revision 38:8a694e2a6847, 1.5 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"""
4solr_util.py
5
6Created by Andre Hagenbruch on 2009-03-20.
7Copyright (c) 2009 University Library Bochum. All rights reserved.
8"""
9
10from httplib import HTTPConnection
11from lxml import etree
12from urllib import urlopen
13
14#SOLR_URL = '134.147.247.36'
15#SOLR_PORT = '8983'
16SOLR_URL = '134.147.243.89'
17SOLR_PORT = '8990'
18#SOLR_PORT = '8987'
19#SOLR_PORT = '8999'
20
21def elm(ename, val, **attr):
22        e = etree.Element(ename)
23        try:
24                if attr is not None:
25                        for att in attr:
26                                e.set(att, attr[att])
27        except IndexError:
28                pass
29        if val is not None:
30                try:
31                        e.text = val.decode('utf-8')
32                except UnicodeDecodeError:
33                        e.text = val.decode('iso-8859-1')
34                except UnicodeEncodeError :
35                        e.text = val
36        return e
37
38def solr(name, value):
39        e = elm('field', value, **{'name': name})
40        return e
41
42def update(tree):
43        # print etree.tostring ( tree )
44        path = '/solr/update/'
45        conn = HTTPConnection(SOLR_URL, SOLR_PORT)
46        conn.request('POST', path, etree.tostring(tree), {'Content-type': 'text/xml'})
47
48def commit():
49        path = '/solr/update/'
50        conn = HTTPConnection(SOLR_URL, SOLR_PORT)
51        conn.request('POST', path, '<commit/>', {'Content-type': 'text/xml'})
52
53def optimize():
54        path = '/solr/update/'
55        conn = HTTPConnection(SOLR_URL, SOLR_PORT)
56        conn.request('POST', path, '<optimize/>', {'Content-type': 'text/xml'})
57
58def spellcheck_index():
59    urlopen('http://%s:%s/solr/select?q=mthematik&spellcheck=true&spellcheck.collate=true&spellcheck.build=true' % (SOLR_URL, SOLR_PORT))
60
61def main():
62        pass
63
64
65if __name__ == '__main__':
66        main()
67
Note: See TracBrowser for help on using the repository browser.