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