我希望能够在我的一个SQLAlchemy映射对象的多个文本字段中进行全文搜索。我还希望我的映射对象支持外键和事务。
我计划使用MySQL来运行全文搜索。但是,我知道MySQL只能在MyISAM表上运行全文搜索,MyISAM表不支持事务和外键。
为了实现我的目标,我计划创建两个表。我的代码如下所示:class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
description = Column(Text)
users_myisam = Table('users_myisam', Base.metadata,
Column('id', Integer),
Column('name', String(50)),
Column('description', Text),
mysql_engine='MyISAM')
conn = Base.metadata.bind.connect()
conn.execute("CREATE FULLTEXT INDEX idx_users_ftxt \
on users_myisam (name, description)")
然后,为了搜索,我将运行以下命令:q = 'monkey'
ft_search = users_myisam.select("MATCH (name,description) AGAINST (&#