我正在使用一个简单的开箱即用的Django/Haystack/whooosh设置,仅用于自动完成目的,除了试图搜索电子邮件地址外,一切都很好。如果我输入joe
,我将得到其名称/电子邮件地址以joe
开头的所有对象,但如果我输入joe@
,我不仅得到具有joe@
电子邮件地址的对象。这就好像@
符号被忽略了,无论我是否转义它。我在Haystack帮助或网上任何地方都找不到任何东西。我如何让Haystack(或Whoosh?)识别@
符号?
...
class ContactIndex(indexes.SearchIndex):
text = indexes.EdgeNgramField(document=True, use_template=True)
full_name = indexes.CharField(model_attr='full_name', null=True)
email = indexes.CharField(model_attr='email', null=True)
...
您需要查看whoosh/qparser/default.py中的QueryParser
haystack不解析查询字符串本身whoosh_backend.py # L370