solr几种查询方式

solr几种查询方式

public static void queryDataTemp() {

  List<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>();

  

  //方式一

  /*SolrQuery query = new SolrQuery();

  query.setQuery("residence_addr:人口 owner_name:房屋");//注意中间是空格 

  */  

  

  //方式二

  /*SolrQuery query = new SolrQuery();

  query.setQuery("residence_addr:人口 OR owner_name:房屋");//注意中间是大写OR

  */  

  

  //方式三

//  SolrQuery query = new SolrQuery("residence_addr:111 OR owner_name:房屋");

  

  //方式四 注意,以下方式,必须要开启edismax解析器

  SolrQuery query = new SolrQuery("人口房屋");

  query.setParam("qf", "residence_addr owner_name");

  query.setParam("defType", "edismax");//查询handler的类型,即查询解析器,如果要使用权重排序,至少要用dismax解析器,edismax还可以使用bf,即函数

  //query.setParam("q.op", "OR"); //默认是OR

  //query.addField("*, score"); // 使得solr查询得到每一条查询的分数.

  

  try {

   QueryResponse resp = solrServer.query(query);

   SolrDocumentList docList = resp.getResults();

   

   for(SolrDocument doc : docList) {

    Collection<String> fieldNameList = doc.getFieldNames();

    

    TreeMap<String, Object> result = new TreeMap<String, Object>();

    

    int index = 100;

    for(String fieldName : fieldNameList) {

     result.put((index++) + "-" + fieldName, doc.get(fieldName));

    }

    

    returnList.add(result);

   }

  } catch (SolrServerException e) {

   e.printStackTrace();

  } finally {

   query.clear();

  }

  

  for(Map<String, Object> map : returnList) {

   Iterator<Entry<String, Object>> it = map.entrySet().iterator();

   while(it.hasNext()) {

    Entry<String, Object> e = it.next();

    System.out.println(e.getKey() + ":" + e.getValue());

   }

  }

 }

转载于:https://my.oschina.net/sniperLi/blog/499656

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值