Guest User

Untitled

a guest
Oct 6th, 2015
186
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. …
  24.  
  25. // Passage des termes à ma fonction qui vérifie que le nombre de terme query & document est le même
  26.  
  27. sqb.setQuery(
  28.   functionScoreQuery(allTerms)
  29.   .add(ScoreFunctionBuilders.scriptFunction("ep_score_all_terms", "native", params))
  30.   .boostMode(CombineFunction.REPLACE)                                          
  31.   );      
  32.  
  33. // Exécution de la recherche
  34. scrollResp = sqb.execute().actionGet();
  35.  
  36. // Stockage du résultat des hits
  37. …
  38.  
  39. // ------ REQUETE MATCH PARTIEL ----------------------
  40.  
  41. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  42.                 .setTypes("advText")
  43.                 .setSearchType(SearchType.SCAN)                                                                      
  44.                 .setScroll(new TimeValue(60000))
  45.                 .setSize(100)                            
  46.                 .setExplain(false)
  47.                 .setTrackScores(true)
  48.                 .addHighlightedField("text", 5000)
  49.                 .addHighlightedField("text.syn",5000)
  50.                 .setHighlighterPreTags("<hi>")
  51.                 .setHighlighterPostTags("</hi>");
  52.  
  53.                 allTerms = matchQuery("text.syn", query.originalText)
  54.                                 .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND)
  55.                                 .fuzziness(Fuzziness.ONE)
  56.                                 .minimumShouldMatch("100%");
  57.                 sqb.setQuery(allTerms);
  58.                 scrollResp = sqb.execute().actionGet();
  59.  
  60. // Stockage du résultat des hits
  61. …
  62.  
  63. // ------- REQUETE FUZZY ------------------------------------
  64. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  65.   .setTypes("advText")
  66.   .setSearchType(SearchType.SCAN)                              
  67.   .setScroll(new TimeValue(60000))
  68.   .setSize(100)                              
  69.   .setExplain(false)
  70.   .setTrackScores(true)
  71.   .addHighlightedField("text", 5000)
  72.   .addHighlightedField("text.phonetic", 5000)
  73.   .setHighlighterPreTags("<hi>")
  74.   .setHighlighterPostTags("</hi>");
  75.  
  76.                 allTerms = matchQuery("text.phonetic", query.originalText)                                                    .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND)
  77.                                 .fuzziness(Fuzziness.ONE)
  78.                                .minimumShouldMatch("100%");                                                          
  79.  
  80. sqb.setQuery(allTerms);
  81. scrollResp = sqb.execute().actionGet();              
  82.  
  83. // Stockage du résultat des hits
  84. ...
  85.  
  86.  
  87. // ------- REQUETE RELATED ------------------------------------
  88.  
  89. sqb = elasticSearchService.getClient().prepareSearch("labels-fr")
  90.   .setTypes("advText")
  91.   .setSearchType(SearchType.SCAN)                                                      
  92.   .setScroll(new TimeValue(60000))
  93.   .setSize(100)                            
  94.   .setExplain(false)
  95.   .setTrackScores(true)
  96.   .addHighlightedField("text", 5000)
  97.   .setHighlighterPreTags("<hi>")
  98.   .setHighlighterPostTags("</hi>");
  99.  
  100. allTerms = matchQuery("text", query.originalText)                                              
  101.   .operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.OR)                                
  102.   .minimumShouldMatch("50%");              
  103.  
  104. sqb.setQuery(allTerms);                                                            
  105. scrollResp = sqb.execute().actionGet();              
  106.  
  107. // Stockage du résultat des hits
  108. …
Advertisement
Add Comment
Please, Sign In to add comment