嘿,我在elasticsearch中有一个用alphanumeric_analyzer分析的字段。然后,我将数据索引到该字段中,如下所示:
测试-00001
测试00002
至
测试-01000
如果执行以下查询,则将始终获得250个结果。但它们不一定是Test-00001到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:
这是我正在使用的分析仪的要点。但是我也可以使用标准分析仪进行复制。
https://gist.github.com/goalie7960/b0bbbddf1cee29b4b5ed
最佳答案
事实证明前缀查询或短语前缀超过了 Elasticsearch 中的最大扩展限制。一个非简单的解决方案是切换到ngram分析,它已解决了该问题。好极了。
关于elasticsearch - 简短查询返回的结果不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066108/