干草堆/嗖嗖搜索电子邮件地址与符号



我正在使用一个简单的开箱即用的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

相关内容

最新更新