2

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

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

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

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

这是正确的方法吗?由于性能问题,为什么默认没有ngram类型的文本字段?

多谢!

4

1 回答 1

0

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

于 2013-04-18T12:38:09.057 回答