请教为什么使用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调试下吧,多半是分词问题,中文查询很可能有问题,请重新检查,因为我没有看到你有用分词,但是貌似你在查中文
![]() |
相关讨论
相关资源推荐
- python deepcopy报错_请教,怎么把改这个pickle错误?
- mysql 先执行子查询_请教php mysql高手把这个子查询改下,能否改成先运行子查询里的数据,然后再用in来指定,运行速度太慢了...
- flask创建mysql表_请教一下,flask-sqlalchemy 怎么动态创建数据表?
- 请教:为什么我的ajax返回的不是responseXML
- Java 高并发,什么方式解决?高并发和大流量解决方案
- Django中的查询
- 用 Elasticsearch 统计做了几次核酸检测?怎么破?
- ElasticsearchRepository做模糊查询+条件筛选+时间范围筛选+分页+排序的聚合查询
- Android 6.0 杀进程,杀什么?
- 记一次模糊查询踩坑 Flink+ES