ElasticSearch和突出显示性能 - 普通与快速矢量荧光笔

时间:2014-07-25 19:04:42

标签: performance lucene elasticsearch highlighting

运行使用slop和事实向量荧光笔的查询时遇到了性能问题。有趣的是,当使用普通荧光笔执行相同的查询时,性能问题就消失了,我不确定为什么会出现这种情况。

以下是搜索字段的元数据:

contents: {
   store: true
   search_analyzer: mySearchAnalyzer
   term_vector: with_positions_offsets
   type: string
}

以下使用事实向量荧光笔的查询需要60秒以上:

{
  "size": 500,
  "query": {
    "query_string": {
      "query": "\"CATERPILLAR FINANCIAL SERVICES ASIA PTE LTD\"~5",
      "fields": [
        "contents"
      ],
      "default_operator": "and",
    }
  },
  "highlight": {
    "fields": {
      "contents": {}
    }
  }
}

但是,如果我更改查询以使用普通分析器,那么只需几毫秒:

{
  "size": 500,
  "query": {
    "query_string": {
      "query": "\"CATERPILLAR FINANCIAL SERVICES ASIA PTE LTD\"~5",
      "fields": [
        "contents"
      ],
      "default_operator": "and",
    }
  },
  "highlight": {
    "fields": {
      "contents": {"type" : "plain"}
    }
  }
}

我已经查看了荧光笔的不同选项(例如fragment_size,fragment_offset,phrase_limit),但是没有什么可以立即显示为可以设置以提高性能。

关于这里发生了什么的任何想法?或者我可以尝试哪种类型的设置来提高性能?

注意:我们从普通矢量荧光笔切换到事实矢量荧光笔的一个原因是由于某些查询因普通荧光笔而失败。

修改:我已在以下链接中添加了演示此问题的复制步骤: https://drive.google.com/file/d/0B-IfDOojIDnIQmpkY2RNN2pMREE/edit?usp=sharing

我认为关键是有一个字段包含许多类似的值(例如,在这种情况下,Caterpillar被多次引用)。

1 个答案:

答案 0 :(得分:0)

虽然不是严格的答案,但根据Duc.Duong的评论,他无法重现这个问题,我尝试使用我们正在使用的版本(0.90.3)和最新的versopm(1.3.2)来复制它)。事实证明,这不再与最新版本重现 - 搜索立即返回。

所以,底线,此问题不会与最新版本重现。不确定修复的位置,但问题出现在0.90.3。