Advertisement
Guest User

Lucene.net build query

a guest
Jan 25th, 2012
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.76 KB | None | 0 0
  1. private static Query BuildQuery(Analyzer analyzer, IEnumerable<string> searchFields, string searchQuery)
  2. {
  3.     var query = new BooleanQuery();
  4.  
  5.     var tokenStream = analyzer.TokenStream(null, new StringReader(searchQuery));
  6.     var termAttribute = (TermAttribute)tokenStream.GetAttribute(typeof(TermAttribute));
  7.  
  8.     while (tokenStream.IncrementToken())
  9.     {
  10.         var term = termAttribute.Term();
  11.         var booleanQuery = new BooleanQuery();
  12.  
  13.         foreach (var searchField in searchFields)
  14.         {
  15.             // TermQuery, PrefixQuery or FuzzyQuery
  16.             booleanQuery.Add(new FuzzyQuery(new Term(searchField, term)), BooleanClause.Occur.SHOULD);
  17.         }
  18.  
  19.         query.Add(booleanQuery, BooleanClause.Occur.MUST);
  20.     }
  21.  
  22.     return query;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement