zoukankan      html  css  js  c++  java
  • Elasticsearch 邻近查询示例

    Elasticsearch 邻近查询示例(全切分分词)
    JAVA API方式:
    1 SpanNearQueryBuilder span = QueryBuilders.spanNearQuery();
    2 span.clause(QueryBuilders.spanTermQuery("Text", "学"));
    3 span.clause(QueryBuilders.spanTermQuery("Text", "联"));
    4 span.inOrder(true).slop(1);
    5 SearchRequestBuilder rs = client.prepareSearch("weiboall")
    6                 .setQuery(span).setFrom(0).setSize(20);
    7 SearchResponse response = rs.get();
    ES 邻近查询JavaAPI
    REST方式(JSON):
     1 {
     2   "from": 0,
     3   "size": 20,
     4   "query": {
     5     "span_near": {
     6       "clauses": [
     7         {
     8           "span_term": {
     9             "Text": {
    10               "value": "在"
    11             }
    12           }
    13         },
    14         {
    15           "span_term": {
    16             "Text": {
    17               "value": "讨"
    18             }
    19           }
    20         }
    21       ],
    22       "slop": 0,
    23       "in_order": true
    24     }
    25   }
    26 }
    JSON邻近查询

     Elasticsearch 邻近查询示例(IK分词)

    这种方式利用前后缀组合查询,可以识别查询中的未登陆词、新词等

    java API方式:

     1 MultiTermQueryBuilder mqb1 = new WildcardQueryBuilder("Text", "*学");
     2 SpanQueryBuilder sb1= new SpanMultiTermQueryBuilder(mqb1);
     3  MultiTermQueryBuilder mqb2 = new WildcardQueryBuilder("Text", "联*");
     4  SpanQueryBuilder sb2= new SpanMultiTermQueryBuilder(mqb2);
     5 SpanNearQueryBuilder spanb= new SpanNearQueryBuilder();
     6  spanb.clause(sb1);
     7  spanb.clause(sb2);
     8 spanb.inOrder(true);
     9 spanb.slop(0);
    10 SearchRequestBuilder rs = client.prepareSearch("weiboall")
    11                 .setQuery(spanb).setFrom(0).setSize(20);
    12         System.out.println(rs.toString());
    13         SearchResponse response = rs.get();
    View Code

    Rest(json)方式:

     1 {
     2   "from" : 0,
     3   "size" : 20,
     4   "query" : {
     5     "span_near" : {
     6       "clauses" : [ {
     7         "span_multi" : {
     8           "match" : {
     9             "wildcard" : {
    10               "Text" : {
    11                 "wildcard" : "*学"
    12               }
    13             }
    14           }
    15         }
    16       }, {
    17         "span_multi" : {
    18           "match" : {
    19             "wildcard" : {
    20               "Text" : {
    21                 "wildcard" : "联*"
    22               }
    23             }
    24           }
    25         }
    26       } ],
    27       "slop" : 0,
    28       "in_order" : true
    29     }
    30   }
    31 }
    View Code
  • 相关阅读:
    SpringIOC——refresh()
    SpringIOC——scan()
    MySQL——查询性能优化
    [php-error-report]PHP Strict Standards: Only variables should be passed by reference
    [阅读]谈谈个人对“金融是否需要互联网”命题之辩
    [javascript]jsonp-function 代码段
    [javascript-snippet]使用javascript+html5实现图片的灰度处理
    [javascript]Three parts of javascript code snippet
    表格显示高亮
    关于FTP的根目录
  • 原文地址:https://www.cnblogs.com/tianjixiaoying/p/4316071.html
Copyright © 2011-2022 走看看