zoukankan      html  css  js  c++  java
  • elastic(10) 基本查询

    # 指定index名以及type名的搜索
    GET /library/books/_search?q=title:elasticsearch
    
    # 指定index名没有type名的搜索
    GET /library/_search?q=title:mongodb
    
    # 既没有index名也没有type名的搜索
    GET /_search?q=title:elasticsearch
    
    
    
    #------------------------------------------------
    # term查询
    
    # term查询:查询某字段里有某个关键词的文档
    GET /library/books/_search
    {
      "query": {
        "term": {
            "preview": "elasticsearch"
        }
      }
    }
    
    # terms查询:查询某个字段里有多个关键词的文档
    # minimum_match:最小匹配集;1 说明两个关键词里最少有一个,2 就说明文档里这两个关键词都得存在
    GET /library/books/_search
    {
      "query": {
        "terms": {
            "preview": ["elasticsearch","book"],
            "minimum_match": 2
        }
      }
    }
    
    #------------------------------------------------
    # 控制查询返回的数量
    
    # from 和 size
    # 相当于mysql里的limit
    # from : 从哪个结果开始返回
    # size : 定义返回最大的结果数
    GET /library/books/_search?q=title:elasticsearch
    
    GET /library/books/_search
    {
      "from":1,
      "size":2,
      "query": {
        "term": {
            "title": "elasticsearch"
        }
      }
    }
    
    
    #------------------------------------------------
    #
    
    # 返回版本号_version
    
    GET /library/books/_search
    {
      "version": true,
      "query": {
        "term": {
            "preview": "elasticsearch"
        }
      }
    }
    
    
    #------------------------------------------------
    # match查询
    
    
    # match查询可接受文字,数字日期等数据类型
    # match跟term的区别是,match查询的时候,elasticsearch会根据你给定的字段提供合适的分析器,而term查询不会有分析器分析的过程
    
    GET /library/books/_search
    {
      "query": {
        "match": {
            "preview": "elasticsearch"
        }
      }
    }
    
    GET /library/books/_search
    {
      "query": {
        "match": {
            "price": 11
        }
      }
    }
    
    # 通过match_all查询
    # 查询指定索引下的所有文档
    GET /library/books/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
    # 通过match_phrase查询
    # 短语查询,slop定义的是关键词之间隔多少未知单词
    GET /library/books/_search
    {
      "query": {
        "match_phrase": {
          "preview": {
             "query": "Elasticsearch , distributed",
             "slop": 2
          }
        }
      }
    }
    
    # multi_match查询
    # 可以指定多个字段
    # 比如查询title和preview这两个字段里都包含Elasticsearch关键词的文档
    GET /library/books/_search
    {
      "query": {
        "multi_match": {
            "query": "Elasticsearch",
            "fields": ["title", "preview"]
        }
      }
    }
    
    
    
    #------------------------------------------------
    #
    
    # 指定返回的字段
    # 注意只能返回store为yes的字段
    GET /library/books/_search
    {
      "fields": ["preview","title"],
      "query": {
        "match": {
            "preview": "elasticsearch"
        }
      }
    }
    
    
    # 通过partial_fields控制加载的字段
    GET /library/books/_search
    {
      "partial_fields": {
        "partial": {
          "include": ["preview"],
          "exclude": ["title,price"]
        }
      },
      "query": {
        "match_all": {}
      }
    }
    
    # 还能加通配符 *
    GET /library/books/_search
    {
      "partial_fields": {
        "partial": {
          "include": ["pr*"],
          "exclude": ["tit*"]
        }
      },
      "query": {
        "match_all": {}
      }
    }
    
    
    #------------------------------------------------
    # 排序
    
    # 通过sort把结果排序
    # desc 降序
    # asc 升序
    GET /library/books/_search
    {
      "query": {
        "match_all": {}
      },
      "sort": [
        {
          "price": {
            "order": "desc"
          }
        }
      ]
    }
    
    GET /library/books/_search
    {
      "query": {
        "match_all": {}
      },
      "sort": [
        {
          "price": {
            "order": "asc"
          }
        }
      ]
    }
    
    
    
    #------------------------------------------------
    #
    
    # prefix 前缀匹配查询
    GET /library/books/_search
    {
      "query": {
        "prefix": {
          "title": {
            "value": "r"
          }
        }
      }
    }
    
    
    
    #------------------------------------------------
    # 控制范围
    
    # range 查询:范围查询
    # 有from , to , include_lower , include_upper , boost这些参数
    # include_lower:是否包含范围的左边界,默认是true
    # include_upper:是否包含范围的右边界,默认是true
    
    GET /library/books/_search
    {
      "query": {
        "range": {
          "publish_date": {
            "from" : "2015-01-01",
            "to" : "2015-06-30"
          }
        }
      }
    }
    
    GET /library/books/_search
    {
      "query": {
        "range": {
          "price": {
            "from" : "11",
            "to" : "20",
            "include_lower" : true,
            "include_upper" : true
          }
        }
      }
    }
    
    
    
    #------------------------------------------------
    #
    
    
    # wildcard查询:允许你使用通配符 * 和 ? 来进行查询
    # * 就代表一个或多个字符
    # ? 仅代表一个字符
    # 注意:这个查询很影响性能
    GET /library/books/_search
    {
      "query": {
        "wildcard": {
          "preview": "rab*"
        }
      }
    }
    
    GET /library/books/_search
    {
      "query": {
        "wildcard": {
          "preview": "luc?ne"
        }
      }
    }
    
    
    
    #------------------------------------------------
    #
    
    # fuzzy模糊查询
    # value : 查询的关键字
    # boost : 设置查询的权值,默认是1.0
    # min_similarity : 设置匹配的最小相似度        默认值为0.5;对于字符串,取值为0-1(包括0和1);对于数值,取值可能大于1;对于日期型,取值为1d,2d,1m这样,1d就代表一天。
    # prefix_length : 指明区分词项的共同前缀长度,默认是0
    # max_expansions : 指明查询中的词项可扩展的数目,默认可以无限大。
    
    GET /library/books/_search
    {
      "query": {
        "fuzzy": {
          "preview": "rabit"
        }
      }
    }
    
    GET /library/books/_search
    {
      "query": {
        "fuzzy": {
          "preview" :{
            "value": "rabit",
            "min_similarity" : 0.5
          }
        }
      }
    }
    
    # fuzzy_like_this 查询
    # 查询得到与给定内容相似的所有文档
    # fileds : 字段组,默认是_all
    # like_text : 设置关键词
    # ignore_tf : 设置忽略词项的频次,默认是false
    # max_query_terns : 指明在生成的查询中查询词项的最大数目。默认是25
    # min_similarity : 指明区分词项最小的相似度,默认是0.5
    # prefix_length : 指明区分词项共同前缀的长度,默认是0
    # boost : 设置权值,默认是1.0
    # analyze : 指明用于分析给定内容的分析器
    
    GET /library/books/_search
    {
      "query": {
        "fuzzy_like_this": {
          "fields": ["preview"],
          "like_text": "open source software",
          "min_similarity" : 0.5,
          "prefix_length" : 0.2
        }
      }
    }
    
    # fuzzy_like_this_field 查询
    # 只作用在一个字段里
    # 其他与fuzzy_like_this功能一样
    GET /library/books/_search
    {
      "query": {
        "fuzzy_like_this_field": {
          "preview": {
            "like_text": "open source software",
            "min_similarity" : 0.5,
            "prefix_length" : 0.2
          }
        }
      }
    }
    
    
    
    #------------------------------------------------
    # more_like_this查询
    
    
    # fields : 定义字段组,默认是_all
    # like_text : 定义要查询的关键词
    # percent_terms_to_match : 该参数指明一个文档必须匹配多大比例的词项才被视为相似。默认值是0.3,意思是30%的比例
    # min_term_freq : 该参数指明在生成的查询中查询词项的最大数目。默认为25
    # stop_words : 该参数指明将被忽略的单词集合
    # min_doc_freq : 该参数指明词项应至少在多少个文档中出现才不会被忽略。默认是5
    # max_doc_freq : 该参数指明出现词项的最大数目,以避免词项被忽略。默认是无限大
    # min_word_len : 该参数指明单个单词的最小长度,低于该值的单词将被忽略,默认值是0
    # max_word_len : 指明单个单词的最大长度,高于该值的单词将被忽略,默认是无限大
    # boost_terms : 该参数指明提升每个单词的权重时使用的权值。默认是1
    # boost : 指明提升一个查询的权值,默认是1.0
    # analyer : 指定用于分析的分析器
    
    GET /library/books/_search
    {
      "query": {
        "more_like_this": {
            "fields": ["preview"],
            "like_text": "Apache open source",
            "min_term_freq" : 1,
            "min_doc_freq" : 1
        }
      }
    }
    
    # more_like_this_field 查询
    # 只作用在一个字段里
    # 其他与more_like_this功能一样
    GET /library/books/_search
    {
      "query": {
        "more_like_this_field": {
          "preview": {
            "like_text": "Apache open source",
            "min_term_freq" : 1,
            "min_doc_freq" : 1
          }
        }
      }
    }
  • 相关阅读:
    hibernate理解
    struts理解
    网上书城项目
    编码过程中遇到的问题
    JS回调函数
    requirejs 一个拆分js项目的类库
    jq插件开发总结
    转载-- 魔兽哈希算法封装和测试
    转载--C# PLINQ 内存列表查询优化历程
    Oracle删除死锁进程的方法
  • 原文地址:https://www.cnblogs.com/guxiaobei/p/8434855.html
Copyright © 2011-2022 走看看