嘿我在elasticsearch中有一个字段,用alphanumeric_analyzer进行分析。然后我将数据索引到该字段中,如下所示:
测试-00001
试验00002
到
试验01000
如果我执行以下查询,我会始终获得250个结果。但它们不一定是Test-00001 to Test -00250。
`{
"query": {
"match": {
"filename_Analyzed": {
"type": "phrase_prefix",
"query": "0"
}
}
}
}`
我期待得到1000个结果,但我只得到250个。我的期望是正确的,还是搜索不正确?
编辑1:
映射的要点: https://gist.github.com/goalie7960/8ffd1536269a901f18bc
编辑2:
如果我将分片数量加倍,结果数量也会增加一倍。所以5个分片= 250个结果,10个分片= 500个结果等等。
编辑3:
这是我正在使用的分析仪的要点。但我也可以用标准分析仪重现。
答案 0 :(得分:1)
结果是前缀查询或短语前缀超出了弹性搜索中的最大扩展限制。一个非简单的解决方案是切换到ngram分析并解决了问题。耶。