• ElasticsearchRepository 使用记录


    前提:项目采用spring-data-elasticsearch 3.2.0

    一、QueryBuilder 使用记录

    (1)fuzzyQuery
    功能:模糊匹配
    原理: fuzzy搜索技术,搜索的时候,可能输入的搜索文本会出现误拼写的情况自动将拼写错误的搜索文本,进行纠正,纠正以后去尝试匹配索引中的数据纠正在一定的范围内如果差别大无法搜索出来

    Java:

    xxxRepository.search(QueryBuilders.fuzzyQuery("name", "张三"))

    ES写法:

    GET /my_index/my_type/_search 
    {
      "query": {
        "fuzzy": {
          "text": {
            "value": "surprize",
            "fuzziness": 2 // fuzziness 即为最多纠正两个字母然后去匹配,默认为 auto(2)
          }
        }
      }
    }

    (2)matchQuery

    功能:根据分词进行匹配

    Java:

    MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("name", archiveListFilterDTO.getPersonName());
    xxxRepository.search(matchQuery);

    ES写法:

    GET my_index/my_type/_search  
    {  
      "query": {  
        "match": {  
          "xxx": "Quick Foxes!"    
        }  
      }  
    } 

    (3)termQuery

    功能:精确查询 完全匹配

    Java:

     TermQueryBuilder termQuery = QueryBuilders.termQuery("cid",archiveListFilterDTO.getPersonCid());
     xxxRepository.search(termQuery);

    ES写法:

    GET my_index/_search
    {
      "query": {
        "term" : {
          "cid" : {
            "value" : "5137376667422s31000000"
          }
        }
      }
    }

    (4)rangeQuery

    功能:范围查询

    Java:

    RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("dt")
                        .gte(dateFormat.parse(snapMapDTO.getStartTime()).getTime())
                        .lte(dateFormat.parse(snapMapDTO.getEndTime()).getTime());
    xxxRepository.search(rangeQueryBuilder);

    ES写法:

    GET my_index/_search
    {
      "query": {
        "range" : {
          "personFileCreateTime" : {
            "from" : 1572331788000,
            "to" : 1572331789000,
            "include_lower" : true,
            "include_upper" : true
          }
        }
      }
    }
  • 相关阅读:
    第九周
    第八周
    第七周
    代码复审核查表
    对软件开发的理解
    第六周
    网站流量分析架构及实现
    hive的sql语句
    精简客户端搭建Oracle数据库
    idaa搭建maven发布tomcat
  • 原文地址:https://www.cnblogs.com/lzj123/p/11821930.html
Copyright © 2020-2023  润新知