以bean的形式提交索引,以bean的形式查询出来

package com.liucheng.solr;
import java.io.Serializable;
import org.apache.solr.client.solrj.beans.Field;
public class student implements Serializable{
private static final long serialVersionUID = 1L;
@Field
private String id;
@Field
private String name_s;
@Field
private int score_i; public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName_s() {
return name_s;
}
public void setName_s(String name_s) {
this.name_s = name_s;
}
public int getScore_i() {
return score_i;
}
public void setScore_i(int score_i) {
this.score_i = score_i;
}
}

其中field的值必须要在scheme.xml中配置,因为该文件中已经有id和动态field的配置,这里就不用配置

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true" />

测试类:

package com.liucheng.solr;
import java.io.IOException;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
public class solrTest {
public static void addIndex(){
HttpSolrClient server = solrServer.getServer();
student stu = new student();
stu.setId("1005");
stu.setName_s("wanglc5");
stu.setScore_i(885);
try {
server.addBean(stu);
server.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
public static void delete(){
HttpSolrClient server = solrServer.getServer();
try {
server.deleteById("1001");
server.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
public static void search(){
HttpSolrClient server = solrServer.getServer();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.setStart(0);
query.setRows(5);
QueryResponse queryResponse;
try {
queryResponse = server.query(query);
List<student> list = queryResponse.getBeans(student.class);
System.out.println("num = "+list.size());
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getName_s());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//addIndex();
//delete();
search();
}
}

solrserver:

package com.liucheng.solr;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
public class solrServer {
private solrServer(){};
final static String SOLR_URL = "http://localhost:8080/solr/test";
private static HttpSolrClient server = null;
public static HttpSolrClient getServer(){
if(server == null){
server = new HttpSolrClient(SOLR_URL);
server.setDefaultMaxConnectionsPerHost(1000);
server.setMaxTotalConnections(10000);
server.setConnectionTimeout(60000);
server.setSoTimeout(60000);
server.setFollowRedirects(false);
server.setAllowCompression(true);
}
return server;
}
}

最新文章

  1. mybatis配置问题
  2. 数据库知识整理&lt;三&gt;
  3. 一个App的界面设计流程是怎么产生的
  4. CSS3边框温故
  5. js中模仿接口继承
  6. 关于求解不定方程的n(n-1)=2m(m-1)的解法的总结
  7. 标准的CSS盒子模型?与低版本IE的盒子模型有什么不同的?
  8. JVM系列二:GC策略&amp;内存申请、对象衰老
  9. clone函数
  10. CentOS 简单命令
  11. snowflake算法(java版)
  12. BZOJ 1026 windy数
  13. 用switch判断月份的练习
  14. 《JavaScript高级程序设计》笔记一
  15. NOI导刊2010提高装备运输
  16. 【Python】 系统配置/进程等信息查看 psutil
  17. M &#215; N Puzzle POJ - 2893(奇数码)
  18. pythonj基础(五)元组和集合
  19. idea的基本使用
  20. 【LOJ】#2546. 「JSOI2018」潜入行动

热门文章

  1. 51nod 1009 数位dp入门
  2. vue2项目中better-scroll 插件使用时候页面不滚动
  3. split方法的使用
  4. CrateDB——全文搜索使用的是lucene,尚不知其底层实现
  5. ionic2常见问题——解决下载gradle-2.14.1-all.zip太慢或失败
  6. MVC框架中的值提供机制(二)
  7. Qt5学习笔记——QRadioButton与QbuttonGroup
  8. Go标准容器之List
  9. Java进阶知识点5:服务端高并发的基石 - NIO与Reactor模式以及AIO与Proactor模式
  10. 该文档举例说明了multimap的查找和删除元素的使用