Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- import os
- from pprint import pprint
- from whoosh import versionstring
- from whoosh.fields import Schema, NUMERIC, TEXT, ID
- import whoosh.index as index
- from whoosh.qparser import QueryParser, plugins
- print "Whoosh Version:", versionstring()
- values = [{'num1':u'1', 'num2':1, 'num3':u'1'},
- {'num1':u'10', 'num2':10, 'num3':u'10'},
- {'num1':u'100', 'num2':100, 'num3':u'100'},
- {'num1':u'1000', 'num2':1000, 'num3':u'1000'},
- {'num1':u'2', 'num2':2, 'num3':u'2'},
- {'num1':u'20', 'num2':20, 'num3':u'20'},
- {'num1':u'200', 'num2':200, 'num3':u'200'},
- {'num1':u'2000', 'num2':2000, 'num3':u'2000'},
- {'num1':u'9', 'num2':9, 'num3':u'9'},
- {'num1':u'90', 'num2':90, 'num3':u'90'},
- {'num1':u'900', 'num2':900, 'num3':u'900'},
- {'num1':u'9000', 'num2':9000, 'num3':u'9000'},
- {'num1':u'1', 'num2':u'1', 'num3':u'1'},
- {'num1':u'10', 'num2':u'10', 'num3':u'10'},
- {'num1':u'2', 'num2':u'2', 'num3':u'2'},
- {'num1':u'20', 'num2':u'20', 'num3':u'20'},
- {'num1':u'5', 'num2':u'5', 'num3':u'5'},
- {'num1':u'55', 'num2':u'55', 'num3':u'55'},
- {'num1':u'555', 'num2':u'555', 'num3':u'555'},
- {'num1':u'5555', 'num2':u'5555', 'num3':u'5555'}, ]
- searchstring = [u'num1:>55', u'num2:>55', u'num3:>55']
- schema = Schema(num1=ID(stored=True),
- num2=NUMERIC(stored=True, signed=False),
- num3=TEXT(stored=True))
- if not os.path.exists("testindexdir"):
- os.mkdir("testindexdir")
- ix = index.create_in("testindexdir", schema, indexname='test1')
- writer = ix.writer()
- for element in values:
- writer.add_document(**element)
- writer.commit()
- for ss in searchstring:
- with ix.searcher() as s:
- qp = QueryParser("content", ix.schema,
- [plugins.FieldsPlugin(),
- plugins.RangePlugin(),
- plugins.GtLtPlugin()
- ])
- q = qp.parse(ss)
- pprint(q)
- results = s.search(q, limit=None)
- pprint([i.fields() for i in results])
- #Output:
- """
- Whoosh Version: 2.3.2
- TermRange(u'num1', u'55', None, True, False, boost=1.0, constantscore=True)
- [{'num1': u'9', 'num2': 9, 'num3': u'9'},
- {'num1': u'90', 'num2': 90, 'num3': u'90'},
- {'num1': u'900', 'num2': 900, 'num3': u'900'},
- {'num1': u'9000', 'num2': 9000, 'num3': u'9000'},
- {'num1': u'555', 'num2': u'555', 'num3': u'555'},
- {'num1': u'5555', 'num2': u'5555', 'num3': u'5555'}]
- NumericRange(u'num2', 55, None, True, False, boost=1.0, constantscore=True)
- [{'num1': u'1', 'num2': 1, 'num3': u'1'},
- {'num1': u'10', 'num2': 10, 'num3': u'10'},
- {'num1': u'100', 'num2': 100, 'num3': u'100'},
- {'num1': u'1000', 'num2': 1000, 'num3': u'1000'},
- {'num1': u'2', 'num2': 2, 'num3': u'2'},
- {'num1': u'20', 'num2': 20, 'num3': u'20'},
- {'num1': u'200', 'num2': 200, 'num3': u'200'},
- {'num1': u'2000', 'num2': 2000, 'num3': u'2000'},
- {'num1': u'9', 'num2': 9, 'num3': u'9'},
- {'num1': u'90', 'num2': 90, 'num3': u'90'},
- {'num1': u'900', 'num2': 900, 'num3': u'900'},
- {'num1': u'9000', 'num2': 9000, 'num3': u'9000'},
- {'num1': u'1', 'num2': u'1', 'num3': u'1'},
- {'num1': u'10', 'num2': u'10', 'num3': u'10'},
- {'num1': u'2', 'num2': u'2', 'num3': u'2'},
- {'num1': u'20', 'num2': u'20', 'num3': u'20'},
- {'num1': u'5', 'num2': u'5', 'num3': u'5'},
- {'num1': u'55', 'num2': u'55', 'num3': u'55'},
- {'num1': u'555', 'num2': u'555', 'num3': u'555'},
- {'num1': u'5555', 'num2': u'5555', 'num3': u'5555'}]
- TermRange(u'num3', u'55', None, True, False, boost=1.0, constantscore=True)
- [{'num1': u'90', 'num2': 90, 'num3': u'90'},
- {'num1': u'900', 'num2': 900, 'num3': u'900'},
- {'num1': u'9000', 'num2': 9000, 'num3': u'9000'},
- {'num1': u'555', 'num2': u'555', 'num3': u'555'},
- {'num1': u'5555', 'num2': u'5555', 'num3': u'5555'}]
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement