Elasticsearch 鄰近查詢示例(全切分分詞)
JAVA API方式:

1 SpanNearQueryBuilder span = QueryBuilders.spanNearQuery(); 2 span.clause(QueryBuilders.spanTermQuery("Text", "學(xué)" )); 3 span.clause(QueryBuilders.spanTermQuery("Text", "聯(lián)" )); 4 span.inOrder( true ).slop(1 ); 5 SearchRequestBuilder rs = client.prepareSearch("weiboall" ) 6 .setQuery(span).setFrom(0).setSize(20 ); 7 SearchResponse response = rs.get();
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 }
?Elasticsearch 鄰近查詢示例(IK分詞)
這種方式利用前后綴組合查詢,可以識別查詢中的未登陸詞、新詞等
java API方式:

1 MultiTermQueryBuilder mqb1 = new WildcardQueryBuilder( " Text " , " *學(xué) " ); 2 SpanQueryBuilder sb1= new SpanMultiTermQueryBuilder(mqb1); 3 MultiTermQueryBuilder mqb2 = new WildcardQueryBuilder( " Text " , " 聯(lián)* " ); 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 ();
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" : "*學(xué)" 12 } 13 } 14 } 15 } 16 }, { 17 "span_multi" : { 18 "match" : { 19 "wildcard" : { 20 "Text" : { 21 "wildcard" : "聯(lián)*" 22 } 23 } 24 } 25 } 26 } ], 27 "slop" : 0 , 28 "in_order" : true 29 } 30 } 31 }
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
