solr管理密码

1.在 tomcat 的 F:\Tomcat 6.0.26_solr\conf\tomcat-users.xml 添加用户角色并指定访问的用户名密码

<role rolename="solr"/>  
<user username="admin" password="admin" roles="solr"/>  

2.在 F:\Tomcat6.0.26_solr\webapps\solr\WEB-INF\web.xm 中添加用户访问权限设置

<security-constraint>  
      <web-resource-collection>  
          <web-resource-name>Solr Lockdown</web-resource-name>  
          <url-pattern>/</url-pattern>  
          <http-method>GET</http-method>  
          <http-method>POST</http-method>  
      </web-resource-collection>  
      <auth-constraint>  
          <description>This applies only to the "tomcat" security role</description>  
          <role-name>solr</role-name>  
          <role-name>admin</role-name>  
      </auth-constraint>  
      <user-data-constraint>  
          <transport-guarantee>NONE</transport-guarantee>  
      </user-data-constraint>  
  </security-constraint>  
    
  <login-config>  
      <auth-method>BASIC</auth-method>  
      <realm-name>Solr</realm-name>  
  </login-config>  

通过 solrJ 进行访问

 public void solr() {
        //String URL = "http://username:password@localhost:8080/solr/core1";
        String URL = "http://admin:admin@localhost:8080/solr/core1";
        httpSolrClient = new HttpSolrClient.Builder(URL).build();
        httpSolrClient.setConnectionTimeout(600000);
        // 正常情况下,以下参数无须设置
        // 使用老版本solrj操作新版本的solr时,因为两个版本的javabin incompatible,所以需要设置Parser
        httpSolrClient.setParser(new XMLResponseParser());
        // socket read timeout
        httpSolrClient.setSoTimeout(600000);
        httpSolrClient.setDefaultMaxConnectionsPerHost(100);
        httpSolrClient.setMaxTotalConnections(100);
        // defaults to false
        httpSolrClient.setFollowRedirects(false);
        // allowCompression defaults to false.
        // Server side must support gzip or deflate for this to have any effect.
        httpSolrClient.setAllowCompression(true);
        // 使用SolrQuery传递参数,SolrQuery的封装性更好
        httpSolrClient.setRequestWriter(new BinaryRequestWriter());
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        try {
            QueryResponse response = httpSolrClient.query(query);
            // 获取查询的结果
            SolrDocumentList docs = response.getResults();
            JSONObject json = new JSONObject();
            JSONArray jsonArry = new JSONArray();
            for (SolrDocument doc : docs) {
                JSONObject jsondata = new JSONObject();
                for (String key : doc.getFieldNames()) {
                   
                    String content = doc.getFieldValue(key).toString();
                    jsondata.put(key, content);
                }
                jsonArry.add(jsondata);
            }
            json.put("total", docs.getNumFound());
            json.put("data", jsonArry);
            System.out.println(json.toString());
        }
        catch (SolrServerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

原文链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值