请教为什么使用QueryFilter无法查询出结果?

yaoxin81 2008-05-04
刚接触lucene,我在做一个多条件过滤的功能,先把条件都放入一个List里
Term provincecode=new Term("provincecode",provinceHidden);
List.add(provincecode);
Term citycode=new Term("citycode",cityHidden);
List.add(citycode);

索引已经建立好了,值都没问题,然后开始查询
private static IndexReader reader;
private Hits hits=null;
private Query query=null;
private Analyzer  analyzer= new IK_CAnalyzer();
private Highlighter highlighter = null;

try {	  
//打开索引目录
reader = IndexReader.open(luceneConfig.getIndexDir()); 
searcher = new IndexSearcher(reader);
     } catch (Exception e) {
            e.printStackTrace();
     }
try {
//在Productname,Brief这2个field上搜索
String[] fields = {"Productname","Brief"};
BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,BooleanClause.Occur.SHOULD};
//构造查询
query=MultiFieldQueryParser.parse(keyword, fields, flags, analyzer);
if(List!=null){
//我想通过List里term增加多个QueryFilter.不知道这么写可以吗?
for(Object o:List){ 
query = new FilteredQuery(query, new QueryFilter(new TermQuery((Term)o))); 
  }
}
//但是这里的hits怎么也搜索不出来
hits = searcher.search(query);
} catch (ParseException e) {
			e.printStackTrace();
} catch (IOException e) {
			e.printStackTrace();
}

结果搜索不出来,大家能不能帮我看看是什么问题?
edwardpro 2008-05-28
你用luke调试下吧,多半是分词问题,中文查询很可能有问题,请重新检查,因为我没有看到你有用分词,但是貌似你在查中文
Global site tag (gtag.js) - Google Analytics