关于solr实现多表查询的方法

关于solr实现多表查询的方法

话不多说上代码.
注意点一:防止主键唯一性的冲突,我选择将主键注释掉(也可以使用uuid代替主键id)
注意点二:实现多表查询的关键是 copyField 将需要分词的关键字段copy.即可实现多表查询/

下面为我的schema.xml 的配置文件.







    
    


name ## java代码查询方法 /** *
testQuerysolr(测试solr搜索引擎的可用性)   
 * 创建人:谭永生
 * 创建时间:2018年9月30日 上午9:58:17    
 * 修改人:谭永生
 * 修改时间:2018年9月30日 上午9:58:17    
 * 修改备注: 
 * @param str
 * @throws SolrServerException
*/ @RequestMapping("testQuerysolr") public void testQuerysolr(String str) throws SolrServerException { SolrQuery params = new SolrQuery();
        // 查询关键词,*:*代表所有属性、所有值,即所有index
      //  params.set("q", str+"~2");// ~2模糊匹配,, *全文匹配
       params.set("q", str);
        params.set("df", "msg_all");
       
        // 分页,start=0就是从0开始,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。
        params.set("start", 0);
        params.set("rows", "1000");

        // 排序,如果按照id排序,那么 写为: id desc(or asc)
        params.set("sort", "id asc");

        QueryResponse response =  solrclient.query(params);
        try {

            response = solrclient.query(params);
        } catch (SolrServerException e) {
            e.printStackTrace();
        }

        if (response != null) {
            System.out.println("Search Results: ");
            SolrDocumentList list = response.getResults();
          
            for (int i = 0; i < list.size(); i++) {
            	//System.out.println(list);//根据key取值 
                 System.out.println("第"+i +"条数据        " +list.get(i));
            }
        }

    }

/**
如有错误之处敬请指出.大家一起学习/

你可能感兴趣的:(java萌新)