gpt4 book ai didi

django - 使用 Postgres 在 Wagtail 中进行部分匹配搜索

转载 作者:行者123 更新时间:2023-12-04 14:55:05 25 4
gpt4 key购买 nike

我有一个由 Postgres 提供支持的 wagtail 站点,并希望对所有文档进行模糊搜索。然而,根据wagtail docs “未处理 SearchField(partial_match=True)。”有谁知道我可以实现自己的部分匹配搜索的方法吗?

我有意将这个问题设为开放式,因为我对几乎所有运行良好且具有相当可扩展性的解决方案持开放态度。

最佳答案

我们目前正在重建 Wagtail 搜索 API,以使自动完成功能在后端之间以大致相同的方式可用。

目前,您可以直接使用 IndexEntry存储搜索数据的模型。不幸的是,django.contrib.postgres.search不包含执行自动完成查询的方法,所以我们现在必须自己做。以下是如何做到这一点:

from django.contrib.postgres.search import SearchQuery
from wagtail.contrib.postgres_search.models import IndexEntry

class SearchAutocomplete(SearchQuery):
def as_sql(self, compiler, connection):
return "to_tsquery(''%s':*')", [self.value]

query = SearchAutocomplete('postg')
print(IndexEntry.objects.filter(body_search=query).rank(query))
# All results containing words starting with “postg”
# should be displayed, sorted by relevance.

关于django - 使用 Postgres 在 Wagtail 中进行部分匹配搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com