ElasticSearch查询性能差一个100K文档数据集

时间:2016-03-21 22:02:27

标签: java performance elasticsearch indexing

我在ElasticSearch上使用默认动态映射,并通过Java API调用搜索方法,如下所示:

    response = client.prepareSearch("test")
    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
    .setQuery(QueryBuilders.queryStringQuery(query)) 
    .setFrom(0).setSize(1000).setExplain(false)
    .execute().actionGet();

在对内存问题进行多次优化(包括堆大小,禁用交换)之后,与其他引擎相比,性能非常糟糕。例如,查询"名称:*"需要将近2分钟才能完成。我该怎么做才能显着提高性能?文档非常小,每个字段几乎有1个令牌。

1 个答案:

答案 0 :(得分:1)

我的问题在于使用的查询类型。 QueryStringQuery检查一个文档中的每个字段。通过使用matchQuery,性能提高了分配。感谢您提供的有用评论。