首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

lucene4.4复合模糊查询,该如何解决

2013-08-01 
lucene4.4复合模糊查询假定lucene的document中存储了3个StringField域,分别是site,channel,title,现

lucene4.4复合模糊查询
假定lucene的document中存储了3个StringField域,分别是"site","channel","title",现在要做多字段匹配且包含模糊的查询,查询条件为:site="1" AND channel="10" AND title 包含“中国”关键字的数据,不晓得该怎么写?
当前使用的lucene4.4,请不吝赐教,谢谢!

这种方式:Query query = new TermQuery(new Term("title","中国"));必须完全匹配,标题为"中国人民"、"中国上海"这样的都搜索不出来。
[解决办法]


Query query = new WildcardQuery(new Term("title","*中国*"));

另外还与你建索引时的分词方式有关。
[解决办法]

        BooleanQuery query = new BooleanQuery();
        query.add(new TermQuery(new Term("site", "1")), BooleanClause.Occur.MUST);
        query.add(new TermQuery(new Term("channel", "10")), BooleanClause.Occur.MUST);
        query.add(new WildcardQuery(new Term("title", "*中国*")), BooleanClause.Occur.MUST);

热点排行