Elasticsearch简单脚本相似性能问题

时间:2020-07-07 06:40:52

标签: performance elasticsearch search similarity

我已经创建了简单的相似性,它所做的只是返回doc.freq

"simple_similarity": {
   "scripted",
   "script": {
      "source": "return doc.freq;"
   }
}

索引foo-bar中还有+-500k文档,其结构为:

{
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "similarity": "simple_similarity"
      }
    }
  }
}

我正在使用的查询例如:

{
    "query": {
        "bool": {
            "should": {
                "match": {
                    "name": "Test Foo Bar Baz"
                }
            }
        }
    }
}

问题在于性能。
对于标准BM25相似算法,查询时间大约需要5-10毫秒。 但是对于我的simple_similarity算法,查询时间大约需要50毫秒,这很奇怪,因为它比BM25简单得多。它甚至没有任何数学运算。

对此有什么解释吗?

已编辑。

Profile API显示我的简单相似性脚本的score_count等于501232,与term.docFreq相同(索引中包含当前术语的文档数。 ) 但是,score_count的{​​{1}}等于10201。

有人知道为什么差异如此之大吗?

0 个答案:

没有答案