• 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
          }
        }
      }
    }
  • 相关阅读:
    函数二 10
    函数初识 09
    文件操作 08
    数据类型的补充 day07
    小数据池 深浅copy 集合
    python Mysql 多条件查询
    ElasticSearch Python 基本操作
    用PyInstaller把Python代码打包成单个独立的exe可执行文件
    python 编译EXE文件
    Git 创建新分支检查分支
  • 原文地址:https://www.cnblogs.com/lzj123/p/11821930.html
Copyright © 2020-2023  润新知