solrj demo 索引创建与查询
2015-06-07 22:03
405 查看
solrj作为solr的java客户端使得solr的开发简单了许多,solrJ实际上也是是封装了httpClient方法,来操作solr的API的。
下面来通过一个简单的demo实现solrj的索引创建以及查询
demo需求:需要对一个product 的实体创建以及查询索引(字段包括id,name,keywords,description,sn)
一,首先根据需要在solr配置文件schema.xml中配置相应的field(这边我只需要增加sn字段即可,其他都直接使用了默认存在的field)
二,创建测试项目
1.所需jar包
除了solrj的jar还需要一下jar
Startup
你也可以通过这里查看wiki上的实例,不过貌似是老版本了通过SolrServer创建客户端的方式在新版本中已经不推荐,而使用改为SolrClient了
https://wiki.apache.org/solr/Solrj
下面来通过一个简单的demo实现solrj的索引创建以及查询
demo需求:需要对一个product 的实体创建以及查询索引(字段包括id,name,keywords,description,sn)
一,首先根据需要在solr配置文件schema.xml中配置相应的field(这边我只需要增加sn字段即可,其他都直接使用了默认存在的field)
<!-- for csop product <field name="id" type="string" indexed="true" stored="true" /> <field name="name" type="string" indexed="true" stored="true" /> <field name="keywords" type="string" indexed="true" stored="true" /> <field name="description" type="string" indexed="true" stored="true" /> --> <field name="sn" type="string" indexed="true" stored="true" /> <!-- for csop product over -->
二,创建测试项目
1.所需jar包
除了solrj的jar还需要一下jar
package com.demo.solr; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import java.util.UUID; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.solr.client.solrj.SolrServerException; import com.demo.solr.model.Product; public class Startup { public static void main(String[] args) throws IOException, ParseException, SolrServerException { System.out.println(new Date()); testSearch(); System.out.println(new Date()); } public static void testInsert() throws IOException, SolrServerException{ List<Product> products =new ArrayList<Product>(); Random ran = new Random(); File dataFile=new File("E://data.txt"); FileWriter fileWriter=new FileWriter(dataFile); BufferedWriter bw=new BufferedWriter(fileWriter); for(int i=0;i<100;i++){ String id=UUID.randomUUID().toString(); String name="test"+i+ran.nextInt(5000); String sn="sn-"+333; String keywords="just test-"+UUID.randomUUID().toString().replace("-", ""); products.add(new Product(id, name, keywords, null, sn)); bw.write(id); bw.write("\t"); bw.write(name); bw.write("\t"); bw.write(keywords); bw.write("\t"); bw.write(sn); bw.newLine(); } fileWriter.flush(); bw.close(); fileWriter.close(); System.out.println(products.size()); SolrIndexUtils.addIndexs(products); } public static void testSearch() throws SolrServerException, IOException{ List<Product> search = SolrQueryUtils.search("test2833", null, null, null, 0, 20); for (Product product : search) { System.out.println(product.getId()+"||||||"+product.getName()); } } }
Startup
你也可以通过这里查看wiki上的实例,不过貌似是老版本了通过SolrServer创建客户端的方式在新版本中已经不推荐,而使用改为SolrClient了
https://wiki.apache.org/solr/Solrj
相关文章推荐
- Pig安装
- 打印菱形
- 第十四周 项目四(2)处理C++源代码的程序
- 面试题:Java中对象序列化接口(Serializable)的意义
- Remove Element
- 第二阶段冲刺进程4
- 已知一个对象,用反射的方式复制另一个对象
- android中 ImageView scaleType属性
- 排序算法(1):简单选择排序和堆排序
- Jquery-pagination.js分页处理
- 【转】Twitter Storm如何保证消息不丢失
- 字符串逆序输出
- qtsdk仓库中国镜像
- 安装keepalived 报错`install' is up to date
- SuperSlide的使用
- 【重构】dll文件是什么
- ThinkPHP3.2使用PHPMailer发送邮件
- [php] 静态方法 接口 链式操作
- 【转】Twitter Storm: 在生产集群上运行topology
- 第九篇 SQL Server代理了解作业和安全