我使用Django的内置的trigram_similar
查找和TrigramSimilarity
类来创建一个使用PostgreSQL数据库的模糊搜索。这样,我可以过滤文章的标题。问题是,这个过滤器基于整个标题。我想过滤它的标题部分也
示例:
文章标题:“我们是世界|这是有史以来最好的文章”
我的搜索:“我们”
在本例中,我的函数不返回任何内容,但我希望它返回本文。我该怎么做
这是我使用的代码:
def search(qs, term, fields=["title"], treshold=.3):
if len(fields) >= 2:
return qs.annotate(
similarity=Greatest(
*[TrigramSimilarity(field, term) for field in fields]
)
).filter(similarity__gte=treshold).order_by("-similarity")
return qs.filter(
**{"{}__trigram_similar".format(fields[0]): term}
)
我认为问题是你在用三元结构的相似性来描述一个两个字母的单词。如果你试着用一个三个字母的单词来做这个,也许会有用
相关问题 更多 >
编程相关推荐