2012-08-23 22 views
2

我只是要求檢查我是否以正確的方式做事。我想向我的django應用程序添加高級搜索功能,然後我開始用SOLR作爲後端測試Haystack。Django + Haystack + Solr部分匹配使用type =「ngram」

由於我真的需要部分匹配,我已經修改了我的schema.xml因此受到草垛定義的文本字段類型NGRAM的,就像這樣:現在

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

部分匹配項與默認的工作包含在乾草堆中的視圖,所以對於名爲約翰的模型,如果我找到「Joh」,它會被找到,因爲它是「ohn」或任何3個字母組合。

這是正確的方法嗎?爲什麼默認情況下不是ngram類型的文本字段,因爲性能問題?

非常感謝!

回答

0

請參閱thisthis。我不確定它在性能方面如何響應,但您可以實現部分匹配行爲,也可以使用ngrams,而無需觸摸solr模式。只需將您的索引的文本字段定義爲EdgeNgramField即可。