匹配短语前缀查询

时间:2014-08-27 14:32:55

标签: elasticsearch match-phrase

我遇到的问题是,弹性搜索在我的环境中返回不同的结果(分段和制作)。

我正在使用的elasticsearch版本对于两种环境都是相同的。

version: { created: 1000199}

这两个环境都具有相同的映射和索引设置。

我有一个索引标题字段为“test”的项目。我正在尝试执行match_phrase_prefix查询。然而,在我的临时环境中,当我只搜索“te”时,结果会按预期返回。在制作中,我必须将我的搜索查询扩展为“tes”(3个字母)以检索文档。

我发出的查询如下:

{
  "query": {
    "match_phrase_prefix": {
      "title": "test"
    }
  },
  "post_filter": {
    "term": {
      "uniqueId": "my_unique_id"
    }
  }
}

我可以在两种环境之间看到的唯一区别是文档索引量。

在我的临时环境中,我有约。 150k文件索引,相当于约297M。

在制作方面,我有超过1.2亿个索引的文件相当于接近120gb。

这是一个规模问题,还是我缺少一些弹性搜索设置。就像我说的那样,环境中的映射和设置是相同的,所以我在这里有点难过。

1 个答案:

答案 0 :(得分:2)

我很晚了,但看到我的另一个answer。问题是max_expansions参数,默认为10。

您的登台环境的字数较少,以“te”开头,而不是生产环境,并且能够在10次扩展中按字母顺序获得 test