我正在浏览sqlalchemy-searchable文档,他们为同一个类提供了多个搜索向量。为什么这会有用?
例如(来自文档)
class Article(Base):
__tablename__ = 'article'
id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.Unicode(255))
content = sa.Column(sa.UnicodeText)
description = sa.Column(sa.UnicodeText)
simple_search_vector = sa.Column(TSVectorType('name'))
fat_search_vector = sa.Column(
TSVectorType('name', 'content', 'desription')
)
我已经拥有fat_search_vector
,其中包含name
。为什么simple_search_vector
会有用?
答案 0 :(得分:2)
只是一个疯狂的猜测:允许你搜索标题(简单搜索),vs行搜索(胖搜索)?
答案 1 :(得分:2)
我正在使用它进行多语言搜索:
class Article(Base):
__tablename__ = 'article'
id = sa.Column(sa.Integer, primary_key=True)
name_en = sa.Column(sa.Unicode(255))
name_es = sa.Column(sa.Unicode(255))
search_vector_es = sa.Column(TSVectorType('name_es'))
search_vector_en = sa.Column(TSVectorType('name_en'))
但是,现在你必须安装开发版本(来自GitHub)才能选择在搜索中使用哪个向量。
query = db.query(Article)
vector = getattr(Article, 'search_vector_{0}'.format(lang)
results = search(query, vector=vector)