def test_document_with_facet(self): doc = tantivy.Document() facet = tantivy.Facet.from_string("/europe/france") doc.add_facet("facet", facet) assert doc["facet"][0].to_path() == ["europe", "france"] doc = tantivy.Document() facet = tantivy.Facet.from_string("/asia\\/oceania/fiji") doc.add_facet("facet", facet) assert doc["facet"][0].to_path() == ["asia/oceania", "fiji"] assert doc["facet"][0].to_path_str() == "/asia\\/oceania/fiji" assert repr(doc["facet"][0]) == "Facet(/asia\\/oceania/fiji)" doc = tantivy.Document(facet=facet) assert doc["facet"][0].to_path() == ["asia/oceania", "fiji"]
def test_document(self): doc = tantivy.Document(name="Bill", reference=[1, 2]) assert doc["reference"] == [1, 2] assert doc["name"] == ["Bill"] assert doc.get_first("name") == "Bill" assert doc.get_first("reference") == 1 assert doc.to_dict() == {"name": ["Bill"], "reference": [1, 2]}
def add_event(self, column_id, event, room_id): doc = tantivy.Document() room_path = "/{}".format(sanitize_room_id(room_id)) room_facet = tantivy.Facet.from_string(room_path) doc.add_unsigned(self.column_field, column_id) doc.add_facet(self.room_field, room_facet) doc.add_date( self.date_field, datetime.datetime.fromtimestamp(event.server_timestamp / 1000), ) doc.add_unsigned(self.timestamp_field, event.server_timestamp) if isinstance(event, RoomMessageText): doc.add_text(self.body_field, event.body) elif isinstance(event, (RoomMessageMedia, RoomEncryptedMedia)): doc.add_text(self.body_field, event.body) elif isinstance(event, RoomNameEvent): doc.add_text(self.name_field, event.name) elif isinstance(event, RoomTopicEvent): doc.add_text(self.topic_field, event.topic) else: raise ValueError("Invalid event passed.") self.writer.add_document(doc)
def test_document_error(self): with pytest.raises(ValueError): tantivy.Document(name={})
def test_document_repr(self): doc = tantivy.Document(name="Bill", reference=[1, 2]) assert repr(doc) == "Document(name=[Bill],reference=[1,2])"
def test_document_with_date(self): import datetime date = datetime.datetime(2019, 8, 12, 13, 0, 0) doc = tantivy.Document(name="Bill", date=date) assert doc["date"][0] == date
def test_document_repr_utf8(self): doc = tantivy.Document(name="野菜食べないとやばい", reference=[1, 2]) assert repr(doc) == "Document(name=[野菜食べないとやばい],reference=[1,2])"