【发布时间】:2014-03-18 00:36:18
【问题描述】:
我想向 sqlalchemy 模型中的列添加自定义属性“可搜索”。目的是仅提取这些列的数据(使用 ModelFoo.__ table__.columns)并将数据放入 solr。有没有办法可以使用自定义属性标记某些列?
class ModelFoo(AppBase):
__tablename__ = 'foo'
id = Column("id", Integer, primary_key=True, autoincrement=True)
os = Column(String, nullable=False, searchable=True)
platform = Column(String, searchable=True)
默认情况下,我在尝试上述操作时会收到以下错误:
sqlalchemy.exc.ArgumentError: Unknown arguments passed to Column: ['searchable']
我正在寻找一种仅向 solr 添加“可搜索”列的通用方法,类似于以下内容:
for table in Base.metadata.tables.values():
keys = [str(key) for key in table.columns if key.searchable]
solr.add(session.query(*keys).all())
在上面的代码中,我正在寻找一些简短的解决方案或替代方案来让“key.searchable”工作。希望这可以澄清问题。
【问题讨论】:
-
你的问题有点不清楚。你想要什么数据,你把数据放在哪里?
-
我只想将某些字段数据放入 solr,而不是整个对象,如下所示:opensource.timetric.com/sunburnt/addingdocuments.html
标签: python solr sqlalchemy flask-sqlalchemy