elasticsearch - 简短查询返回的结果不足

标签 elasticsearch

嘿,我在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/

相关文章:

elasticsearch - 正确的分析仪用于带反斜杠的字段

indexing - 如何从 elasticsearch 中检索旧版本文档?

elasticsearch - 如何在嵌套 script_score 的过滤器之间添加?

c# - 无法使NLog从代码中以数字/整数/长整数形式发送字段

ruby-on-rails - Rails 5 Search Facets 过滤器

python - 在Elasticsearch中可能存在或不存在字段的情况下如何搜索

hadoop - 使用来自Pig的EShadoop将Geoshape存储到Elasticsearch

search - 如何根据 ElasticSearch 中的项目数对搜索结果进行排序?

php - 如何使用php从Elasticsearch批量删除文档

search - ElasticSearch Has_Child不返回结果