【发布时间】:2020-12-20 21:11:17
【问题描述】:
我正在尝试使用 Django 全文搜索,但遇到了问题:
我已经关注了这个documentation,效果很好。但我的问题是我不希望 postgress 考虑我搜索的单词的顺序或排列。
我的意思是我希望搜索“good boy”和“boy good”的结果相同。
而且当我搜索“好男孩”时,我想在结果中看到“好坏男孩”。
但是这些都没有发生,我无法通过输入“boy good”甚至“good boy”来查询“good bad boy”(因为“bad”缺失)。
我尝试按空格分隔search_text,然后用 & 像这样的搜索查询来删除单词的顺序,但它没有用。
我更改了这段代码:
search_query = SearchQuery(
search_text
)
search_rank = SearchRank(search_vectors, search_query)
到这里:
s = SearchQuery(search_text.split(' ')[0])
for x in search_text.split(' ')[1:]:
s = s & SearchQuery(x)
search_query = s
search_rank = SearchRank(search_vectors, search_query)
【问题讨论】:
标签: django postgresql full-text-search