+ -
当前位置:首页 → 问答吧 → LUCENE怎么进行多字段查询

LUCENE怎么进行多字段查询

时间:2011-12-03

来源:互联网

刚学LUCENE,不清楚LUCENE如何做到多字段查询的。在服务器端定义了搜索的字段,如果客户端搜索的字段少于服务器端的字段该怎么办?另外似乎可以使用 字段名+:+搜索的内容这样的模式,是不是指定了就不用担心服务器端定义了多少的字段搜索。

JScript code

ArrayList<Occur> occurs=new ArrayList();
            int pos=0;
            while(pos<length){
                occurs.add(BooleanClause.Occur.MUST);
                pos++;
            }
            String[] searchContents=(String[]) searchBundle.getJSONArray("content").toArray();
            Query multiQuery=MultiFieldQueryParser.parse(Version.LUCENE_30, searchContents, searchFields,(Occur[])occurs.toArray(), analyzer);
            QueryParser parser = new QueryParser(Version.LUCENE_30, field, analyzer);
            ScoreDoc hits[] = searcher.search(multiQuery, null, 1500).scoreDocs;

作者: jinweifu   发布时间: 2011-12-03

QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "title", "content" }, Configuration.getAnalyzer());
这个是按title 和content查询的

作者: pdsjlx   发布时间: 2011-12-03

热门下载

更多