Advertisement
Guest User

Untitled

a guest
Oct 6th, 2015
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.41 KB | None | 0 0
  1. // ------ REQUETE MATCH EXACT ----------------------
  2.  
  3. SearchRequestBuilder sqb =
  4. elasticSearchService.getClient().prepareSearch("labels-fr")
  5.                 .setTypes("advText")
  6.                 .setSearchType(SearchType.SCAN)                                                                      
  7.                 .setScroll(new TimeValue(60000))
  8.                 .setSize(100)                              
  9.                 .setExplain(false)
  10.                 .setTrackScores(true)
  11.                 .addHighlightedField("text", 5000)
  12.                 .setHighlighterPreTags("<hi>")
  13.                 .setHighlighterPostTags("</hi>")
  14.  
  15.  QueryBuilder allTerms = matchQuery("text", query.originalText)
  16.                .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND)
  17.                 .fuzziness(Fuzziness.ZERO)
  18.                 .minimumShouldMatch("100%")
  19.                 ;  
  20.  
  21. // Obtention des termes de la requêtes en utilisant la méthode tokenStream de l’analyseur concerné
  22.  
  23. // Passage des termes à ma fonction qui vérifie que le nombre de terme query & document est le même
  24.  
  25. sqb.setQuery(
  26.   functionScoreQuery(allTerms)
  27.   .add(ScoreFunctionBuilders.scriptFunction("ep_score_all_terms", "native", params))
  28.   .boostMode(CombineFunction.REPLACE)                                          
  29.   );      
  30.  
  31. // Exécution de la recherche
  32. scrollResp = sqb.execute().actionGet();
  33.  
  34. // Stockage du résultat des hits
  35.  
  36. // ------ REQUETE MATCH PARTIEL ----------------------
  37.  
  38. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  39.                 .setTypes("advText")
  40.                 .setSearchType(SearchType.SCAN)                                                                      
  41.                 .setScroll(new TimeValue(60000))
  42.                 .setSize(100)                            
  43.                 .setExplain(false)
  44.                 .setTrackScores(true)
  45.                 .addHighlightedField("text", 5000)
  46.                 .addHighlightedField("text.syn",5000)
  47.                 .setHighlighterPreTags("<hi>")
  48.                 .setHighlighterPostTags("</hi>");
  49.  
  50.                 allTerms = matchQuery("text.syn", query.originalText)
  51.                                 .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND)
  52.                                 .fuzziness(Fuzziness.ONE)
  53.                                 .minimumShouldMatch("100%");
  54.                 sqb.setQuery(allTerms);
  55.                 scrollResp = sqb.execute().actionGet();
  56.  
  57. // Stockage du résultat des hits
  58.  
  59. // ------- REQUETE FUZZY ------------------------------------
  60. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  61.   .setTypes("advText")
  62.   .setSearchType(SearchType.SCAN)                              
  63.   .setScroll(new TimeValue(60000))
  64.   .setSize(100)                              
  65.   .setExplain(false)
  66.   .setTrackScores(true)
  67.   .addHighlightedField("text", 5000)
  68.   .addHighlightedField("text.phonetic", 5000)
  69.   .setHighlighterPreTags("<hi>")
  70.   .setHighlighterPostTags("</hi>");
  71.  
  72.                 allTerms = matchQuery("text.phonetic", query.originalText)                                                    .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND)
  73.                                 .fuzziness(Fuzziness.ONE)
  74.                                .minimumShouldMatch("100%");                                                          
  75.  
  76. sqb.setQuery(allTerms);
  77. scrollResp = sqb.execute().actionGet();              
  78.  
  79. // Stockage du résultat des hits
  80. ...
  81.  
  82.  
  83. // ------- REQUETE RELATED ------------------------------------
  84.  
  85. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  86.   .setTypes("advText")
  87.   .setSearchType(SearchType.SCAN)                                                      
  88.   .setScroll(new TimeValue(60000))
  89.   .setSize(100)                            
  90.   .setExplain(false)
  91.   .setTrackScores(true)
  92.   .addHighlightedField("text", 5000)
  93.   .setHighlighterPreTags("<hi>")
  94.   .setHighlighterPostTags("</hi>");
  95.  
  96. allTerms = matchQuery("text", query.originalText)                                              
  97.   .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.OR)                                
  98.   .minimumShouldMatch("50%");              
  99.  
  100. sqb.setQuery(allTerms);                                                            
  101. scrollResp = sqb.execute().actionGet();              
  102.  
  103. // Stockage du résultat des hits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement