2012-08-16 58 views
3

在我的领域内容是“示例”。 我不仅想找到确切的单词“例子”,我还想找到“例子”。我怎样才能做到这一点?有没有任何选择。找不到任何东西。django haystack如何找到字词中的子字符串?

+3

文本= indexes.EdgeNgramField(文件=真,use_template = TRUE) 这完全适用于我的情况:) – user1603200 2012-08-16 14:19:21

+0

也看到这EdgeNgramField示例:http://django-haystack.readthedocs.org/en/latest/autocomplete.html – Medorator 2014-10-07 05:16:03

回答

4

如果您只想搜索以某个字符串开头的对象,那么只需查看Haystack SearchQuerySet API文档即可。它类似于Django QuerySet API,因此可以编写:

SearchQuerySet().filter(content__startswith='examp') 
SearchQuerySet().filter(content__contains='examp') 

或任何你想要的。

但在这个问题中还有更深层次的问题。我不认为你真的需要。由于搜索引擎的工作方式 - 当有人搜索e.q. '监视'它被阻止(它是获得类似于词的根的过程 - 所以我们将从'监视'中监视'),并且实际上将被搜索。此外,搜索索引中的所有内容都会被阻止,因此搜索监视器将返回包含f.e.的结果。 '显示器', '监视', 'monitorize' 等在search_indexes.py

相关问题