【发布时间】:2011-08-06 05:23:13
【问题描述】:
我最近设置了 solr 和 haystack 来搜索我的一个 django 模型。我试图修改 haystack 构建的默认 solr 架构以使用 NGramTokenizerFactory:
<fieldType name="text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="32" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="32" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我的数据库中有一堆一两个单词条目,我想将它们与用户的查询进行匹配。例如,我可能有一个标题为“狗”的对象和另一个标题为“猫”的对象。如果用户搜索“dog cat”,那么我想为该查询返回 dog 和 cat 对象。
同样,如果我搜索“我的酷网站”,我希望返回带有“网站”的字段。
我尝试使用 solr 管理界面来检查以确保我的查询得到匹配。那里一切似乎都很好: : 问题是当我使用 haystack 默认搜索界面搜索相同的查询时:
如您所见,未找到任何结果。我尝试使用 KeywordFactory 和一堆不同的 solr 配置。如果我没记错的话,查询应该得到匹配。不过,我不确定为什么 haystack 是空的。
感谢您提供有关这是否是进行此类搜索的最佳方式的任何帮助/建议。
【问题讨论】:
标签: django search solr django-haystack