- 官方文档 http://wiki.apache.org/solr/Solrj 参考地址http://blog.csdn.net/wxwzy738/article/details/17149433
- 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连接的
- 代码实现:
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 }
- solr 查询截图
相关文章: