本文整理汇总了Python中whoosh.compat.text_type函数的典型用法代码示例。如果您正苦于以下问题:Python text_type函数的具体用法?Python text_type怎么用?Python text_type使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了text_type函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_gtlt
def test_gtlt():
schema = fields.Schema(a=fields.KEYWORD, b=fields.NUMERIC,
c=fields.KEYWORD,
d=fields.NUMERIC(float), e=fields.DATETIME)
qp = qparser.QueryParser("a", schema)
qp.add_plugin(plugins.GtLtPlugin())
qp.add_plugin(dateparse.DateParserPlugin())
q = qp.parse(u("a:hello b:>100 c:<=z there"))
assert_equal(q.__class__, query.And)
assert_equal(len(q), 4)
assert_equal(q[0], query.Term("a", "hello"))
assert_equal(q[1], query.NumericRange("b", 100, None, startexcl=True))
assert_equal(q[2], query.TermRange("c", None, 'z'))
assert_equal(q[3], query.Term("a", "there"))
q = qp.parse(u("hello e:>'29 mar 2001' there"))
assert_equal(q.__class__, query.And)
assert_equal(len(q), 3)
assert_equal(q[0], query.Term("a", "hello"))
# As of this writing, date ranges don't support startexcl/endexcl
assert_equal(q[1], query.DateRange("e", datetime(2001, 3, 29, 0, 0), None))
assert_equal(q[2], query.Term("a", "there"))
q = qp.parse(u("a:> alfa c:<= bravo"))
assert_equal(text_type(q), "(a:a: AND a:alfa AND a:c: AND a:bravo)")
qp.remove_plugin_class(plugins.FieldsPlugin)
qp.remove_plugin_class(plugins.RangePlugin)
q = qp.parse(u("hello a:>500 there"))
assert_equal(text_type(q), "(a:hello AND a:a: AND a:500 AND a:there)")
示例2: test_fieldboost
def test_fieldboost():
schema = fields.Schema(id=fields.STORED, a=fields.TEXT, b=fields.TEXT)
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(id=0, a=u("alfa bravo charlie"), b=u("echo foxtrot india"))
w.add_document(id=1, a=u("delta bravo charlie"), b=u("alfa alfa alfa"))
w.add_document(id=2, a=u("alfa alfa alfa"), b=u("echo foxtrot india"))
w.add_document(id=3, a=u("alfa sierra romeo"), b=u("alfa tango echo"))
w.add_document(id=4, a=u("bravo charlie delta"), b=u("alfa foxtrot india"))
w.add_document(id=5, a=u("alfa alfa echo"), b=u("tango tango tango"))
w.add_document(id=6, a=u("alfa bravo echo"), b=u("alfa alfa tango"))
w.commit()
def field_booster(fieldname, factor=2.0):
"Returns a function which will boost the given field in a query tree"
def booster_fn(obj):
if obj.is_leaf() and obj.field() == fieldname:
obj = copy.deepcopy(obj)
obj.boost *= factor
return obj
else:
return obj
return booster_fn
with ix.searcher() as s:
q = Or([Term("a", u("alfa")), Term("b", u("alfa"))])
q = q.accept(field_booster("a", 100.0))
assert_equal(text_type(q), text_type("(a:alfa^100.0 OR b:alfa)"))
r = s.search(q)
assert_equal([hit["id"] for hit in r], [2, 5, 6, 3, 0, 1, 4])
示例3: __unicode__
def __unicode__(self):
r = u("DisMax(")
r += " ".join(sorted(text_type(s) for s in self.subqueries))
r += u(")")
if self.tiebreak:
r += u("~") + text_type(self.tiebreak)
return r
示例4: test_not_assoc
def test_not_assoc():
qp = default.QueryParser("text", None)
q = qp.parse(u("a AND NOT b OR c"))
assert_equal(text_type(q), "((text:a AND NOT text:b) OR text:c)")
qp = default.QueryParser("text", None)
q = qp.parse(u("a NOT (b OR c)"))
assert_equal(text_type(q), "(text:a AND NOT (text:b OR text:c))")
示例5: test_paren_fieldname
def test_paren_fieldname():
schema = fields.Schema(kind=fields.ID, content=fields.TEXT)
qp = default.QueryParser("content", schema)
q = qp.parse(u("(kind:1d565 OR kind:7c584) AND (stuff)"))
assert_equal(text_type(q), "((kind:1d565 OR kind:7c584) AND content:stuff)")
q = qp.parse(u("kind:(1d565 OR 7c584) AND (stuff)"))
assert_equal(text_type(q), "((kind:1d565 OR kind:7c584) AND content:stuff)")
示例6: test_operator_queries
def test_operator_queries():
qp = default.QueryParser("f", None)
q = qp.parse("a AND b OR c AND d")
assert_equal(text_type(q), "((f:a AND f:b) OR (f:c AND f:d))")
q = qp.parse("a OR b OR c OR d")
assert_equal(text_type(q), "(f:a OR f:b OR f:c OR f:d)")
q = qp.parse("a ANDMAYBE b ANDNOT c REQUIRE d")
assert_equal(text_type(q), "((f:a ANDMAYBE (f:b ANDNOT f:c)) REQUIRE f:d)")
示例7: test_dismax
def test_dismax():
parser = default.DisMaxParser({"body": 0.8, "title": 2.5}, None)
q = parser.parse(u("alfa bravo charlie"))
assert_equal(text_type(q), "(DisMax(body:alfa^0.8 title:alfa^2.5) OR DisMax(body:bravo^0.8 title:bravo^2.5) OR DisMax(body:charlie^0.8 title:charlie^2.5))")
q = parser.parse(u("alfa +bravo charlie"))
assert_equal(text_type(q), "(DisMax(body:bravo^0.8 title:bravo^2.5) ANDMAYBE (DisMax(body:alfa^0.8 title:alfa^2.5) OR DisMax(body:charlie^0.8 title:charlie^2.5)))")
q = parser.parse(u("alfa -bravo charlie"))
assert_equal(text_type(q), "((DisMax(body:alfa^0.8 title:alfa^2.5) OR DisMax(body:charlie^0.8 title:charlie^2.5)) ANDNOT DisMax(body:bravo^0.8 title:bravo^2.5))")
q = parser.parse(u("alfa -bravo +charlie"))
assert_equal(text_type(q), "((DisMax(body:charlie^0.8 title:charlie^2.5) ANDMAYBE DisMax(body:alfa^0.8 title:alfa^2.5)) ANDNOT DisMax(body:bravo^0.8 title:bravo^2.5))")
示例8: test_simple
def test_simple():
parser = default.SimpleParser("x", None)
q = parser.parse(u("alfa bravo charlie delta"))
assert_equal(text_type(q), "(x:alfa OR x:bravo OR x:charlie OR x:delta)")
q = parser.parse(u("alfa +bravo charlie delta"))
assert_equal(text_type(q), "(x:bravo ANDMAYBE (x:alfa OR x:charlie OR x:delta))")
q = parser.parse(u("alfa +bravo -charlie delta"))
assert_equal(text_type(q), "((x:bravo ANDMAYBE (x:alfa OR x:delta)) ANDNOT x:charlie)")
q = parser.parse(u("- alfa +bravo + delta"))
assert_equal(text_type(q), "((x:bravo AND x:delta) ANDNOT x:alfa)")
示例9: test_update2
def test_update2():
schema = fields.Schema(key=fields.ID(unique=True, stored=True),
p=fields.ID(stored=True))
with TempIndex(schema, "update2") as ix:
nums = list(range(100))
random.shuffle(nums)
for i, n in enumerate(nums):
w = ix.writer()
w.update_document(key=text_type(n % 10), p=text_type(i))
w.commit()
with ix.searcher() as s:
results = [d["key"] for d in s.all_stored_fields()]
results.sort()
assert_equal(results, ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"])
示例10: test_update2
def test_update2():
schema = fields.Schema(key=fields.ID(unique=True, stored=True),
p=fields.ID(stored=True))
with TempIndex(schema, "update2") as ix:
nums = list(range(21))
random.shuffle(nums)
for i, n in enumerate(nums):
w = ix.writer()
w.update_document(key=text_type(n % 10), p=text_type(i))
w.commit()
with ix.searcher() as s:
results = [d["key"] for _, d in s.iter_docs()]
results = " ".join(sorted(results))
assert results == "0 1 2 3 4 5 6 7 8 9"
示例11: test_andnot
def test_andnot():
qp = default.QueryParser("content", None)
q = qp.parse(u("this ANDNOT that"))
assert_equal(q.__class__, query.AndNot)
assert_equal(q.a.__class__, query.Term)
assert_equal(q.b.__class__, query.Term)
assert_equal(q.a.text, "this")
assert_equal(q.b.text, "that")
q = qp.parse(u("foo ANDNOT bar baz"))
assert_equal(q.__class__, query.And)
assert_equal(len(q), 2)
assert_equal(q[0].__class__, query.AndNot)
assert_equal(q[1].__class__, query.Term)
q = qp.parse(u("foo fie ANDNOT bar baz"))
assert_equal(q.__class__, query.And)
assert_equal(len(q), 3)
assert_equal(q[0].__class__, query.Term)
assert_equal(q[1].__class__, query.AndNot)
assert_equal(q[2].__class__, query.Term)
q = qp.parse(u("a AND b ANDNOT c"))
assert_equal(q.__class__, query.AndNot)
assert_equal(text_type(q), "((content:a AND content:b) ANDNOT content:c)")
示例12: test_asyncwriter_no_stored
def test_asyncwriter_no_stored():
schema = fields.Schema(id=fields.ID, text=fields.TEXT)
with TempIndex(schema, "asyncnostored") as ix:
domain = (u"alfa", u"bravo", u"charlie", u"delta", u"echo",
u"foxtrot", u"golf", u"hotel", u"india")
writers = []
# Simulate doing 20 (near-)simultaneous commits. If we weren't using
# AsyncWriter, at least some of these would fail because the first
# writer wouldn't be finished yet.
for i in xrange(20):
w = writing.AsyncWriter(ix)
writers.append(w)
w.add_document(id=text_type(i),
text=u" ".join(random.sample(domain, 5)))
w.commit()
# Wait for all writers to finish before checking the results
for w in writers:
if w.running:
w.join()
# Check whether all documents made it into the index.
with ix.reader() as r:
assert sorted([int(id) for id in r.lexicon("id")]) == list(range(20))
示例13: test_andnot
def test_andnot():
qp = default.QueryParser("content", None)
q = qp.parse(u("this ANDNOT that"))
assert q.__class__ == query.AndNot
assert q.a.__class__ == query.Term
assert q.b.__class__ == query.Term
assert q.a.text == "this"
assert q.b.text == "that"
q = qp.parse(u("foo ANDNOT bar baz"))
assert q.__class__ == query.And
assert len(q) == 2
assert q[0].__class__ == query.AndNot
assert q[1].__class__ == query.Term
q = qp.parse(u("foo fie ANDNOT bar baz"))
assert q.__class__ == query.And
assert len(q) == 3
assert q[0].__class__ == query.Term
assert q[1].__class__ == query.AndNot
assert q[2].__class__ == query.Term
q = qp.parse(u("a AND b ANDNOT c"))
assert q.__class__ == query.AndNot
assert text_type(q) == "((content:a AND content:b) ANDNOT content:c)"
示例14: test_copyfield
def test_copyfield():
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"b": "c"}, None))
assert_equal(text_type(qp.parse("hello b:matt")), "(a:hello AND b:matt AND c:matt)")
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"b": "c"}, syntax.AndMaybeGroup))
assert_equal(text_type(qp.parse("hello b:matt")), "(a:hello AND (b:matt ANDMAYBE c:matt))")
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"b": "c"}, syntax.RequireGroup))
assert_equal(text_type(qp.parse("hello (there OR b:matt)")), "(a:hello AND (a:there OR (b:matt REQUIRE c:matt)))")
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"a": "c"}, syntax.OrGroup))
assert_equal(text_type(qp.parse("hello there")), "((a:hello OR c:hello) AND (a:there OR c:there))")
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"b": "c"}, mirror=True))
assert_equal(text_type(qp.parse("hello c:matt")), "(a:hello AND (c:matt OR b:matt))")
qp = qparser.QueryParser("a", None)
qp.add_plugin(plugins.CopyFieldPlugin({"c": "a"}, mirror=True))
assert_equal(text_type(qp.parse("hello c:matt")), "((a:hello OR c:hello) AND (c:matt OR a:matt))")
ana = analysis.RegexAnalyzer(r"\w+") | analysis.DoubleMetaphoneFilter()
fmt = formats.Frequency()
schema = fields.Schema(name=fields.KEYWORD, name_phone=fields.FieldType(fmt, ana, multitoken_query="or"))
qp = qparser.QueryParser("name", schema)
qp.add_plugin(plugins.CopyFieldPlugin({"name": "name_phone"}))
assert_equal(text_type(qp.parse(u("spruce view"))), "((name:spruce OR name_phone:SPRS) AND (name:view OR name_phone:F OR name_phone:FF))")
示例15: test_multifield
def test_multifield():
schema = fields.Schema(content=fields.TEXT, title=fields.TEXT,
cat=fields.KEYWORD, date=fields.DATETIME)
qs = u("a (b c cat:d) OR (b c cat:e)")
qp = default.MultifieldParser(['x', 'y'], schema)
q = qp.parse(qs)
assert_equal(text_type(q), "((x:a OR y:a) AND (((x:b OR y:b) AND (x:c OR y:c) AND cat:d) OR ((x:b OR y:b) AND (x:c OR y:c) AND cat:e)))")