Django+ Haystack + Solr 部分匹配使用 type= "ngram"



我只是想检查一下我做事情的方式是否正确。我想在我的django应用程序中添加高级搜索功能,我开始用SOLR作为后端测试Haystack。

由于我确实需要部分匹配,我修改了schema.xml,因此haystack定义的文本字段类型为nGram,如下所示:

    <field name="text" type="ngram" indexed="true" stored="true" multiValued="false" />

部分匹配现在使用haystack中包含的默认视图,所以对于一个名为John的模型,如果我查找"Joh",就会找到它,因为它是"ohn"或任何3个字母的组合。

这是正确的路吗?由于性能问题,为什么默认情况下不使用ngram类型的文本字段?

非常感谢!

看看这个和这个。我不确定它在性能方面是如何响应的,但您可以实现部分匹配行为,也可以使用ngrams,而不必接触您的solr模式。只需将索引的文本字段定义为EdgeNgramField。

最新更新