我们目前正在使用基于Elasticsearch的Haystack。我们在部分词搜索方面遇到了麻烦。
我们当前已经有了一个含有EdgeNgramField的索引。我试图在该字段上进行搜索,但除了精确匹配的结果外,没有找到其他结果。我试图用它来查找产品,例如:我输入“sun”,但我无法获得“sunglasses”的结果。
我开始直接使用curl命令在elasticsearch上进行操作,以查明出现了什么情况。我甚至使用curl直接创建了自己的索引,并使用ngram分析器,通过部分词搜索获得了正确的结果。
另一个有趣的事情是:如果我在我的测试索引上直接在elasticsearch上运行_mapping命令,我会得到如下结果:“testfield”:{"type":"string","analyzer":"test_analyzer"},然而,如果我在由haystack创建的索引上运行映射命令,它只有"type":"string",并没有任何关于应该使用的edgengram_analyzer的信息。
你有什么想法吗?
我们当前已经有了一个含有EdgeNgramField的索引。我试图在该字段上进行搜索,但除了精确匹配的结果外,没有找到其他结果。我试图用它来查找产品,例如:我输入“sun”,但我无法获得“sunglasses”的结果。
我开始直接使用curl命令在elasticsearch上进行操作,以查明出现了什么情况。我甚至使用curl直接创建了自己的索引,并使用ngram分析器,通过部分词搜索获得了正确的结果。
另一个有趣的事情是:如果我在我的测试索引上直接在elasticsearch上运行_mapping命令,我会得到如下结果:“testfield”:{"type":"string","analyzer":"test_analyzer"},然而,如果我在由haystack创建的索引上运行映射命令,它只有"type":"string",并没有任何关于应该使用的edgengram_analyzer的信息。
你有什么想法吗?