solrJ笔记(1)
2016-06-07 17:52
211 查看
solr for java增删改查+分页+高亮的demo
注:solr部署在tomcat下,有关部署的问题详见:http://blog.csdn.net/disiwei1012/article/details/51610571实体
public class Article { @Field(value="id") private int id ; @Field(value="title") private String title; @Field(value="content") private String content; @Field(value="price") private double price; @Field(value="name") private String name; public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
增删改查
/* * * solrJava CRUD * */ public class SolrJ { @Test public void addIndex()throws Exception{ String urlString = "http://localhost:8080/solr"; SolrServer solr = new HttpSolrServer(urlString); //the third method that add document List<Article> list = new ArrayList<Article>(); Article article = null; for(int i=20;i<=25;i++){ article = new Article(); article.setId(i); article.setName("dqf"); article.setTitle("高大上"); article.setContent("白富美"); article.setPrice(19); list.add(article); } //注意是addBeans不是addBean solr.addBeans(list); /*the first method that add document SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "751328118"); doc.addField("name", "dqf"); doc.addField("content", "很好的一个名字"); solr.add(doc);*/ /*the second method that add document Article article = new Article(); article.setId(10); article.setName("dmz"); article.setContent("你好"); article.setTitle("xyz"); article.setPrice(20); solr.addBean(article);*/ solr.commit(); } @Test public void delIndex()throws Exception{ String urlString = "http://localhost:8080/solr"; SolrServer solr = new HttpSolrServer(urlString); solr.deleteById("751328118"); solr.commit(); } public void updateIndex()throws Exception{ } @Test public void findIndex() throws SolrServerException{ String urlString = "http://localhost:8080/solr"; SolrServer solr = new HttpSolrServer(urlString); SolrQuery solrParams = new SolrQuery(); solrParams.setQuery("name:dqf"); //分页 solrParams.setStart(0); solrParams.setRows(2); //开启高亮 solrParams.setHighlight(true); //设置高亮的显示格式 solrParams.setHighlightSimplePre("<font color='red'>"); solrParams.setHighlightSimplePost("</font>"); //需要哪几个字段进行高亮 solrParams.setParam("hl.fl", "name"); QueryResponse queryResponse = solr.query(solrParams); //返回高亮之后的结果 SolrDocumentList docList = queryResponse.getResults(); /*for(SolrDocument solrDocument:docList){ Object id = solrDocument.get("id"); Object name = solrDocument.get("name"); Object content = solrDocument.get("content"); Object price = solrDocument.get("price"); }*/ //放回所有的结果 Map<String,Map<String,List<String>>> maplist = queryResponse.getHighlighting(); for(SolrDocument solrDocument:docList){ Object id = solrDocument.get("id"); System.out.println(id); Map<String, List<String>> fieldMap = maplist.get(id); List<String> stringList = fieldMap.get("name"); System.out.println(stringList); } } }
源码下载地址:http://pan.baidu.com/s/1nuT2LhJ
相关文章推荐
- 在Eclipse中运行Solr 基础知识
- java Lucene 中自定义排序的实现
- 使用Java的Lucene搜索工具对检索结果进行分组和分页
- Solr 5.3.0集成mmseg4j、tomcat部署、Solrj 5.3.0使用
- 关于lucene搜索时排序的问题
- Lucene highlighter高亮显示
- IKAnalyzer分词技术
- Highlighter与BooleanQuery查询
- 从零开始使用Hubbledotnet进行全文搜索-前言
- Solr基础--设置solr/home的三种方式
- windows下安装solr5.5.0
- Docker使用supervisor构建solr
- solr4.0安装和简单导入mysql数据
- Solr 4.0 基础教程
- 自译Solr in action中文版
- Solr In Action 中文版 第一章(一)
- Solr In Action 中文版 第一章 (二)
- Solr In Action 中文版 第一章(三)
- solr搜索引擎使用
- 基于solr实现hbase的二级索引