Python 如何获得按相似性排序的列表切片?
我是炼金术新手。在文档中,我没有找到我需要的东西 任务是从数据库中获取前N个值,按某个字段与某个字符串的相似性排序 请告诉我怎么做 p.S. 我的模型:Python 如何获得按相似性排序的列表切片?,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我是炼金术新手。在文档中,我没有找到我需要的东西 任务是从数据库中获取前N个值,按某个字段与某个字符串的相似性排序 请告诉我怎么做 p.S. 我的模型: class Place(Base): __tablename__ = 'places' id = Column(Integer, primary_key=True, index=True) name = Column(String) country = Column(String) 例如,数据库包含以下行:
class Place(Base):
__tablename__ = 'places'
id = Column(Integer, primary_key=True, index=True)
name = Column(String)
country = Column(String)
例如,数据库包含以下行:
abrzefg, country5
nupvrzz, country8
ekbianq, country2
abrdefg, country3
sezovcl, country1
abcdefg, country7
wznkpdg, country6
nwphtbj, country4
我想用这样的东西
pattern = 'abcde'
slice = db.query(models.Place).filter(similarity(
models.Place.name, pattern
)).top(3)
得到这个:
abcdefg, country7
abrdefg, country3
abrzefg, country5
我找到了解决办法
from sqlalchemy import desc, func
places = db.query(models.Place).order_by(desc(func.similarity(
models.Place.name, pattern
))).limit(3).all()
帮助我们帮助您-请分享一些示例数据和您试图获得的结果,以便进一步澄清