短查询返回的结果不够

时间:2014-06-05 17:05:46

标签: elasticsearch

嘿我在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:

这是我正在使用的分析仪的要点。但我也可以用标准分析仪重现。

https://gist.github.com/goalie7960/b0bbbddf1cee29b4b5ed

1 个答案:

答案 0 :(得分:1)

结果是前缀查询或短语前缀超出了弹性搜索中的最大扩展限制。一个非简单的解决方案是切换到ngram分析并解决了问题。耶。