xbgfy
  1. 官方文档  http://wiki.apache.org/solr/Solrj   参考地址http://blog.csdn.net/wxwzy738/article/details/17149433 
  2. maven 配置
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
     
        <groupId>redis</groupId>
        <artifactId>redis</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>../rabbitMQ</module>
        </modules>
        <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.8.0</version>
        </dependency>
            <dependency>
                <groupId>org.apache.solr</groupId>
                <artifactId>solr-solrj</artifactId>
                <version>5.5.1</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.12</version>
            </dependency>
    </dependencies>
     
    </project>

    自己删除多余的配置redis连接的

  3. 代码实现:
     1 package com.mll.solr;
     2  
     3 import org.apache.solr.client.solrj.beans.Field;
     4  
     5 /**
     6  * Created by wendongshan on 2016/6/17.
     7  */
     8 public class User {
     9     @Field
    10     private  int id;
    11     @Field
    12     private  String userName;
    13     @Field
    14     private  int userAge;
    15     @Field
    16     private  String userAddress;
    17  
    18     public int getId() {
    19         return id;
    20     }
    21  
    22     public void setId(int id) {
    23         this.id = id;
    24     }
    25  
    26     public String getUserName() {
    27         return userName;
    28     }
    29  
    30     public void setUserName(String userName) {
    31         this.userName = userName;
    32     }
    33  
    34     public int getUserAge() {
    35         return userAge;
    36     }
    37  
    38     public void setUserAge(int userAge) {
    39         this.userAge = userAge;
    40     }
    41  
    42     public String getUserAddress() {
    43         return userAddress;
    44     }
    45  
    46     public void setUserAddress(String userAddress) {
    47         this.userAddress = userAddress;
    48     }
    49  
    50     @Override
    51     public String toString() {
    52         return "User{" +
    53                 "id=" + id +
    54                 ", userName=\'" + userName + \'\\'\' +
    55                 ", userAge=" + userAge +
    56                 ", userAddress=\'" + userAddress + \'\\'\' +
    57                 \'}\';
    58     }
    59  
    60     public User() {
    61     }
    62  
    63     public User(int id, String userName, int userAge, String userAddress) {
    64         this.id = id;
    65         this.userName = userName;
    66         this.userAge = userAge;
    67         this.userAddress = userAddress;
    68     }
    69  
    70     public User(String userName, int userAge, String userAddress) {
    71         this.userName = userName;
    72         this.userAge = userAge;
    73         this.userAddress = userAddress;
    74     }
    75 }

    核心代码如下:

     1 package com.mll.solr;
     2  
     3 import org.apache.solr.client.solrj.SolrQuery;
     4 import org.apache.solr.client.solrj.SolrServerException;
     5 import org.apache.solr.client.solrj.impl.HttpSolrServer;
     6 import org.apache.solr.client.solrj.response.QueryResponse;
     7 import org.apache.solr.common.SolrDocument;
     8 import org.apache.solr.common.SolrDocumentList;
     9 import org.apache.solr.common.SolrInputDocument;
    10  
    11 import java.io.IOException;
    12 import java.util.ArrayList;
    13 import java.util.List;
    14  
    15 /**
    16  * Created by wendongshan on 2016/6/17.
    17  */
    18 public class MoonSolr {
    19  
    20     private  static   final String  solrUrl="http://192.168.2.107:8080/solr/moon";//solr服务地址,moon 就是我们的core-selector 可以理解为用户组
    21  
    22     /**
    23      * 查询数据
    24      */
    25     public  static  void searchSolr() throws IOException, SolrServerException {
    26         HttpSolrServer server = new HttpSolrServer( solrUrl );
    27         SolrQuery query = new SolrQuery("userName:te*");//查询条件,支持模糊匹配
    28         //实现分页的查询
    29         query.setStart(0);
    30         query.setRows(3);
    31         QueryResponse res = server.query(query);
    32       //  res.getBeans 支持对象转换,但是不能获取统计条数
    33         //查询出来的结果都保存在SolrDocumentList中
    34         SolrDocumentList sdl = res.getResults();
    35         System.out.println("总数:"+sdl.getNumFound());
    36         for(SolrDocument sd : sdl){
    37             System.out.println("id="+sd.get("id")+";   userName="+sd.get("userName")+";    userAddress="+sd.get("userAddress")+";");
    38         }
    39     }
    40  
    41     /**
    42      * 自定义字段加入索引
    43      * @throws IOException
    44      * @throws SolrServerException
    45      */
    46     private static   void save3() throws IOException, SolrServerException {
    47         HttpSolrServer server = new HttpSolrServer( solrUrl );
    48  
    49         SolrInputDocument doc = new SolrInputDocument();
    50         doc.addField("userName","杀无赦");
    51         doc.addField("id","9999");
    52         doc.addField("userAge",90);
    53         doc.addField("userAddress","双流国际机场");
    54         server.add(doc);
    55         server.commit();
    56     }
    57     /**
    58      * 向索引文件里面插入指定的值,但是不会入库数据库,切记
    59      * 下面插入集合  记得在user字段上面注解@Field
    60      * @throws IOException
    61      * @throws SolrServerException
    62      */
    63     private static   void save() throws IOException, SolrServerException {
    64         HttpSolrServer server = new HttpSolrServer( solrUrl );
    65         List<User> users=new ArrayList<User>();
    66         User user=new User("sky",30,"软件园E区");
    67         users.add(user);
    68         server.addBeans(users);
    69         server.commit();
    70     }
    71  
    72     private static   void save2() throws IOException, SolrServerException {
    73         HttpSolrServer server = new HttpSolrServer( solrUrl );
    74         User user=new User("moon",28,"软件园E区");
    75         server.addBean(user);
    76         server.commit();
    77     }
    78  
    79     public static void main(String[] args) {
    80         try {
    81             //MoonSolr. save2();
    82             MoonSolr. save3();
    83             //MoonSolr.searchSolr();
    84         } catch (IOException e) {
    85             e.printStackTrace();
    86         } catch (SolrServerException e) {
    87             e.printStackTrace();
    88         }
    89     }
    90  
    91  
    92 }
  4. solr 查询截图

     

分类:

技术点:

相关文章: