2010-02-22 4 views
0

here ...Lucene '참여'방법? 일부 II


요구 사항 : 여러 필드 어디에서 여러 값을 기준으로
검색 Bar.Id == argBar.Id

var parser = new MultiFieldQueryParser 
    (new[] { "Name", "Title" }, new SimpleAnalyzer()); 

parser.???(string.Format("Bar.Id:{0}",argBar.Id)); // o_0 

var query = Session.CreateFullTextQuery 
    (parser.Parse(searchValue), new[] { typeof(Foo) }); 

Found this :

Query searchQuery = MultiFieldQueryParser.Parse 
    (term, new[] {"title", "description"}, 
     new[] {BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD}, 
     new StandardAnalyzer()); 

그래서 이론적으로 - 나는 argBar.IdBooleanClause.Occur.Must을 추가 할 수 있어야하지만 Lucene.Net 2.4.0.2에는 그러한 과부하가 없습니다.

답변

0
var bq = new BooleanQuery(); 
bq.Add(parser.Parse(searchValue), BooleanClause.Occur.SHOULD); 
bq.Add(new TermQuery 
    (new Term("Bar.Id", argBar.Id.ToString()), BooleanClause.Occur.Must); 

var r = Session.CreateFullTextQuery(bq, new[] {typeof(Foo)}); 
//victory