`

ElasticSearche 高性能query和filter查询语句探索

阅读更多

 

原文链接:http://blog.ifootsteps.com/?p=96

ElasticSearch查询语句主要有两种,一种为query 一种为filter.对于query来说需要进行评分过程所以是要被filter慢一些的.而普通的match又会比terms慢一些,所以当filter和term组合一起时效率会提升更多.

比如:

 

GET index/type/_search
{
  "query": {
    "filtered": {
      "filter": {
        "query": {
          "terms": {
            "name": [
              "西直门",
              "烤鸭",
              "周黑鸭",
              "看"
            ],
            "minimum_match": 2
          }
        }
      }
    }
  }
}

 目前minimum_match的数值设置为terms的数量 /2 向上取整.

 

这个语句是目前使用的效率最高的无评分语句.java转化很简单就不贴例子了.

 

还有一种是带评分的query语句

 

GET index/type/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "terms": {
            "name": [
              "西直门",
              "烤鸭",
              "看"
            ],
           "minimum_match":2
          }
        }
      ]
    }
  }
}

 这两种都利用的terms,这就是说在查询时必须利用elasticsearch分词插件,在查询前预分词,利用分词结果查询.

 

所以也可以使用match查询当然效率相对会低一些

 

GET index/type/_search
{
  "query": {
    "filtered": {
      "filter": {
        "query": {
          "match": {
            "name": {
              "query": "东直门烤鸭",
              "operator": "and"//默认为or 需要精确查找时候可以设置为and
            }
          }
        }
      }
    }
  }
}

当然还有最简单的查询方式

GET index/type/_search?size=1
{
  "query": {
    "match": {
      "name": {
        "query": "东直门烤鸭"
        , "operator": "or"
      }
    }
  }
}

 

这里指定了size等于1,为了提高一些效率也可以不设置,默认为10 

 

 

 

 

分享到:
评论

相关推荐

    mysql常用性能查询语句

    MySQL 常用性能查询语句 MySQL 是一种关系型数据库管理系统,提供了多种方式来查询和优化数据库性能。...通过这些性能查询语句,可以更好地了解和优化 MySQL 数据库的性能,提高数据库的稳定性和性能。

    Database Query Builder 查询语句

    Laravel官方文档讲解,该资料是一整套视频,需要逐个下载,Database Query Builder 查询语句

    Laravel开发-laravel-query-filter

    `laravel-query-filter`项目提供了一种更简洁、更优雅的方式来实现这一目标,它帮助开发者从`Request`对象中获取输入并直接应用于Eloquent查询,避免了传统方式中的冗余`where`语句。 在传统的Laravel开发中,为了...

    对ElasticsearchPHP进行查询语句封装可实现链式调用方便es查询

    封装查询语句意味着将这些复杂的查询结构转换为易于理解和使用的API。 2. **链式调用**:这是一种编程设计模式,使得多个方法可以连续调用,提高代码的可读性和灵活性。在Elasticsearch-PHP中,可以通过链式调用来...

    可视化sql查询语句生成器

    可视化SQL查询语句生成器是一种高效且用户友好的工具,专为那些不熟悉或不习惯编写SQL代码的用户设计。这种工具通常具有图形用户界面(GUI),允许用户通过直观的界面来构建复杂的查询,而无需直接输入SQL命令。在...

    根据以下语句查询执行消耗CPU大的sql语句.docx

    这个语句使用了 sys.dm_exec_query_stats 和 sys.dm_exec_sql_text 这两个动态管理视图来查询执行消耗 CPU 大的 SQL 语句。这个语句的优点是可以查询到当前数据库中消耗 CPU 最高的 TOP 50 个语句,并且可以查看每个...

    数据库查询语句(SQL语句)大全

    数据库查询语句,通常以SQL(Structured Query Language)为代表,是数据管理与处理的核心工具。SQL语句大全涵盖了从基础到高级的各种查询结构,适用于多种情况,为数据库操作提供了全面的指南。 一、SQL基本概念 ...

    SQL查询语句生成器

    SQL查询语句生成器是一种工具,它帮助用户无需手动编写复杂的SQL命令,即可自动生成所需的查询语句。这种工具在数据库应用中极为重要,尤其对于那些不熟悉SQL语法或者希望提高工作效率的用户来说,它是宝贵的资源。...

    DB Query Analyzer中断SQL语句的执行.pdf

    这些知识点详细解释了DB Query Analyzer这个工具的关键特性以及它在数据库查询和性能分析中的重要性。它提供了一个有效的手段来解决大型数据库查询和数据分析工作中可能会遇到的执行时间长和资源占用问题。对于...

    SQL查询语句大全SQL查询语

    本资源“SQL查询语句大全”显然是一份全面介绍SQL查询的资料,涵盖了各种基本和高级查询技巧。下面我们将深入探讨SQL查询的一些核心知识点。 1. **SQL基础** - **SELECT语句**:这是SQL中最常用的语句,用于从...

    Python库 | queryfilter-0.4.7-py2.py3-none-any.whl

    `queryfilter`库主要专注于数据过滤和查询操作,这在处理大量数据时非常有用。它可能提供了一种简洁、高效的语法来查询和筛选数据集,比如从数据库、CSV文件或任何可迭代对象中提取特定信息。对于后端开发来说,这样...

    SQL查询语句的练习

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,它的功能强大且广泛应用于数据查询、更新、插入和删除等操作。在这个“SQL查询语句的练习”中,我们将深入探讨SQL的基础概念以及如何运用它...

    Easy Query Builder简单查询语句生成器汉化中文版

    简单查询语句生成器是用户需要从作为小小的努力和需要尽可能的知识与数据库中提取信息完全免费软件解决方案。它使用户能够提取数据翻译自然语言查询他们创建此程序成正确的可以理解他们是要发送到的数据库的SQL语句...

    经典的SQL查询语句,将内容作为字段查询

    当我们谈论“经典的SQL查询语句,将内容作为字段查询”时,我们通常是指在SQL中使用内容作为查询的一部分来检索特定数据。这样的查询对于数据分析师、数据库管理员以及任何需要从大量数据中提取信息的人来说至关重要...

    实验二《用SQLQuery工具和SQL语句 创建数据库与相应的表》

    实验二《用SQLQuery工具和SQL语句创建数据库与相应的表》主要目的是让学生熟悉数据库的创建、表的构建以及数据的插入操作。在实验中,学生们将通过使用SQLQuery工具和SQL语句来实践这些基本的数据库管理任务,具体...

    Hibernate_Query查询所有数据

    在执行查询时,Hibernate提供了Query和Criteria API来实现这一目标。 1. **使用HQL(Hibernate Query Language)** HQL是Hibernate特有的查询语言,类似于SQL,但更面向对象。查询所有数据的HQL语句如下: ```...

    SQL查询语句转换成图结构的算法设计与实现.pdf

    该算法可以将SQL查询语句中的字段、表名、函数、操作符、值和关键字转换成图结构,以便更好地理解和处理SQL查询语句。 1. SQL查询语句的图结构设计 在设计SQL查询语句的图结构时,我们首先需要定义SQL子句和关键字...

    MySQL mysql_query 函数执行SQL语句.docx

    * query:要发送查询的 SQL 语句 * connection:可选,连接数据库的标识资源,如果不指定则使用上一连接 返回值: * 对于没有数据返回结果集的 SQL 语句,如 UPDATE、DELETE 等,在执行成功时返回 TRUE,出错时...

    关于advanced query tools

    8. **性能调优**:高级查询工具的一个核心功能是帮助用户识别和优化慢查询,可能讲解了如何使用工具来分析执行计划,调整索引,或者优化查询语句。 9. **安全性与权限管理**:对于大型企业,数据安全至关重要。文章...

Global site tag (gtag.js) - Google Analytics