【问题标题】:Django+ Haystack + Solr partial matches using type="ngram"使用 type="ngram" 的 Django+ Haystack + Solr 部分匹配
【发布时间】:2012-08-23 13:10:40
【问题描述】:

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

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

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

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

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

非常感谢!

【问题讨论】:

    标签: django solr django-haystack


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 2015-04-07
      相关资源
      最近更新 更多