我正在开发一个现有的 Django 项目,该项目使用带有 xapian 后端的 haystack 来实现全局搜索功能。但是,当我使用一些特殊字符(如 & 和空格等)进行搜索时,搜索似乎失败了。我尝试过但找不到修复它的方法。
有没有办法可以逃避这些字符并使搜索工作?我在后端使用 PostgreSQL。任何指针都会非常有帮助。
更新:搜索功能使用 SearchForm,查询字符串来自 q 字段。这在代码中如下所示。
sqs = self.searchqueryset.auto_query(self.cleaned_data['q'])
我试过使用:
sqs = self.searchqueryset.filter(self.cleaned_data['q'])
和
sqs = self.searchqueryset.filter(content=Clean(self.cleaned_data['q']))
没有运气。我仍然无法使用空格和特殊字符(如 &)进行搜索。