zoukankan      html  css  js  c++  java
  • 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
          }
        }
      }
    }
  • 相关阅读:
    Java实现各种内部排序算法
    Java实现堆排序(大根堆)
    Java对象的序列化和反序列化
    Java实现链式存储的二叉查找树(递归方法)
    337. House Robber III(包含I和II)
    318. Maximum Product of Word Lengths
    114. Flatten Binary Tree to Linked List
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    96. Unique Binary Search Trees(I 和 II)
  • 原文地址:https://www.cnblogs.com/lzj123/p/11821930.html
Copyright © 2011-2022 走看看