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)))")
def test_dash(): ana = analysis.StandardAnalyzer("[ \t\r\n()*?]+") schema = fields.Schema(title=fields.TEXT(analyzer=ana), text=fields.TEXT(analyzer=ana), time=fields.ID) qtext = u("*Ben-Hayden*") qp = default.QueryParser("text", schema) q = qp.parse(qtext) assert_equal(repr(q), "Wildcard('text', u'*ben-hayden*')") qp = default.MultifieldParser(["title", "text", "time"], schema) q = qp.parse(qtext) assert_equal(repr(q), "Or([Wildcard('title', u'*ben-hayden*'), Wildcard('text', u'*ben-hayden*'), Wildcard('time', u'*Ben-Hayden*')])")
def test_dash(): ana = analysis.StandardAnalyzer("[^ \t\r\n()*?]+") schema = fields.Schema(title=fields.TEXT(analyzer=ana), text=fields.TEXT(analyzer=ana), time=fields.ID) qtext = u("*Ben-Hayden*") qp = default.QueryParser("text", schema) q = qp.parse(qtext) assert q.__class__ == query.Wildcard assert q.fieldname == "text" assert q.text == "*ben-hayden*" qp = default.MultifieldParser(["title", "text", "time"], schema) q = qp.parse(qtext) assert q.__unicode__() == "(title:*ben-hayden* OR text:*ben-hayden* OR time:*Ben-Hayden*)"
def test_fields(): s = fields.Schema(content=fields.TEXT, title=fields.TEXT, id=fields.ID) qp = default.QueryParser("content", s) q = qp.parse(u("test")) assert q.__class__ == query.Term assert q.fieldname == "content" assert q.text == "test" mq = default.MultifieldParser(("title", "content"), s) q = mq.parse(u("test")) assert q.__class__ == query.Or assert q[0].__class__ == query.Term assert q[1].__class__ == query.Term assert q[0].fieldname == "title" assert q[1].fieldname == "content" assert q[0].text == "test" assert q[1].text == "test" q = mq.parse(u("title:test")) assert q.__class__ == query.Term assert q.fieldname == "title" assert q.text == "test"
def test_fields(): s = fields.Schema(content=fields.TEXT, title=fields.TEXT, id=fields.ID) qp = default.QueryParser("content", s) q = qp.parse(u("test")) assert_equal(q.__class__, query.Term) assert_equal(q.fieldname, "content") assert_equal(q.text, "test") mq = default.MultifieldParser(("title", "content"), s) q = mq.parse(u("test")) assert_equal(q.__class__, query.Or) assert_equal(q[0].__class__, query.Term) assert_equal(q[1].__class__, query.Term) assert_equal(q[0].fieldname, "title") assert_equal(q[1].fieldname, "content") assert_equal(q[0].text, "test") assert_equal(q[1].text, "test") q = mq.parse(u("title:test")) assert_equal(q.__class__, query.Term) assert_equal(q.fieldname, "title") assert_equal(q.text, "test")