【发布时间】:2012-11-27 21:34:56
【问题描述】:
我们目前正在使用 elasticsearch 后端运行 haystack。我们无法正确运行部分单词搜索。
我们目前有一个包含 EdgeNgramField 的索引。我曾尝试在此字段上进行搜索,但除非完全匹配,否则我找不到任何结果。我正在尝试使用它来查找产品,例如:我输入“sun”,我不会得到“sunglasses”的结果。
我开始直接在 elasticsearch 上使用 curl 命令,看看我是否能弄清楚发生了什么。我什至直接使用 curl 以及 ngram 分析器创建了自己的索引,并且使用部分单词搜索获得了正确的结果。
另一个有趣的事情是:如果我直接在我直接使用 curl 创建的 elasticsearch 上的测试索引上使用 curl 运行 _mapping 命令,我会得到以下内容:“testfield”:{“type”:“string”,“ Analyzer":"test_analyzer"},但是,如果我在 haystack 创建的索引上运行映射命令,它只有 "type":"string"。它没有说明它应该使用的 edgengram_analyzer。
有什么想法吗?
【问题讨论】:
标签: python elasticsearch django-haystack