Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得按相似性排序的列表切片?_Python_Postgresql_Sqlalchemy - Fatal编程技术网

Python 如何获得按相似性排序的列表切片?

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) 例如,数据库包含以下行:

我是炼金术新手。在文档中,我没有找到我需要的东西

任务是从数据库中获取前N个值,按某个字段与某个字符串的相似性排序

请告诉我怎么做

p.S.

我的模型:

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()

帮助我们帮助您-请分享一些示例数据和您试图获得的结果,以便进一步澄清