摘要:Lucene.Net 使用 IN 搜尋
若要建立 IN 搜尋 , 例如 SQL 的 sample 如下 :
select * from product where product_Id in (1,2,3,4)
Lucene.Net 若想做到 IN 搜尋 , 有兩種方式
第一種方式 : 使用 BooleanQuery
BooleanQuery query = new BooleanQuery();
query.Add(new TermQuery(new Term("product_Id", "1"), Occur.SHOULD));
query.Add(new TermQuery(new Term("product_Id"", "2"), Occur.SHOULD));
query.Add(new TermQuery(new Term("product_Id"", "3"), Occur.SHOULD));
query.Add(new TermQuery(new Term("product_Id"", "4"), Occur.SHOULD));
第二種方式 :
Query parser = new QueryParser(Version.LUCENE_30, "product_Id", new StandardAnalyzer(Version.LUCENE_30)).Parse("1 2 3 4");
第一種方式有個缺點是 BooleanQuery 預設值是 1024 , 若要調整上限可使用下列 Code
BooleanQuery.MaxClauseCount = value