浏览器界面操作:
一、添加:如图添加相应内容后点击Submit Documents,出现图上所示success状态则表示添加成功。
二、修改:修改界面和添加界面一致,但是修改是通过先删除再添加新索引实现的。
三、删除:使用xml方式输入删除的标签<delete>,再加上提交标签<commit>
也可以使用<query>标签进行批量删除
四、查询:
1.q :query 通过 【域名:关键字】 进行查询
2.fq :filter query 通过【域名:[min TO max ]】 进行查询
3.sort:排序,通过【域名 asc/desc】进行排序查询
4.start,rows :相对于mysql的limit ,表示从第start条开始,取rows条
5.fl :Field List :表示所需要查询的字段
6.df :default search field ,
7.wt :返回的数据格式
8.hl :high light ,高亮显示
hl.fl:需要高亮显示的域名
solrJ相关操作:
1.导入相关jar包:
核心包:solr-solrj-4.10.3.jar
依赖包:
一、添加:
@Test
public void testAddIndex() throws Exception{
//创建和solr服务端连接
SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
//创建solr文档对象
SolrInputDocument document = new SolrInputDocument();
//定义域的相关内容
document.addField("id", "22222");
document.addField("product_name", "ACmilan");
document.addField("product_price", "700000000");
//添加
server.add(document);
//提交
server.commit();
}
三、删除:
@Test
public void testDeleteIndex() throws Exception{
//创建和solr服务端连接
SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
//根据主键id进行删除
server.deleteById("22222");
//根据查询条件进行删除
server.deleteByQuery("*:*");
//提交
server.commit();
}
四、查询:
1.普通查询:
@Test
public void textSearchIndex1() throws Exception{
//创建和solr服务端连接
SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
//创建solr的查询条件对象
SolrQuery query = new SolrQuery();
//查询所有
query.setQuery("*:*");
//查询并获取响应对象
QueryResponse queryResponse = server.query(query);
//从查询响应中获取查询结果集对象
SolrDocumentList results = queryResponse.getResults();
//获取查询条数
System.out.println("查询的条数为:"+results.getNumFound());
//遍历查询结果集
for (SolrDocument solrDocument : results) {
System.out.println(solrDocument.get("product_name"));
}
}
【查询结果如下】:
查询的条数为:3803
花儿朵朵彩色金属门后挂 8钩免钉门背挂钩2066
幸福一家人彩色金属门后挂 8钩免钉门背挂钩2088
神偷奶爸电影同款 惨叫发泄公仔 发声小黄人
神偷奶爸电影同款 发泄公仔 暴眼小黄人
有趣浪漫魔力无痕挂钩 环保厨房卫生间衣钩无痕挂钩
zakka杂货 情侣小鹿树脂摆件家居装饰品一对
魔幻星座音乐水晶球内雕音乐盒七彩渐变音乐球
家天下情侣款仿真缝纫机音乐盒八音盒 创意礼品
家天下嘻哈动物魔术贴挂钩绕带无痕挂钩2个装RB205
创意卡通动物铁艺门后挂钩挂物ZT3103
@Test
public void textSearchIndex2() throws Exception{
//创建和solr服务端连接
SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
//创建solr的查询条件对象
SolrQuery query = new SolrQuery();
//查询关键字
query.setQuery("手机");
//设置默认搜索域
query.set("df", "product_keywords");
//设置过滤查询
query.addFilterQuery("product_price:[18 TO 20]");
//设置排序
query.setSort("product_price", ORDER.desc);
//设置分页
query.setStart(10);//设置起始位置
query.setRows(20);//设置显示条数
//设置高亮显示
//开启高亮
query.setHighlight(true);
//设置需要高亮显示的域
query.addHighlightField("product_name");
//设置高亮前缀
query.setHighlightSimplePre("<span style=\"color:red\">");
//设置高亮后缀
query.setHighlightSimplePost("</span>");
//查询并获取响应对象
QueryResponse queryResponse = server.query(query);
//从查询响应中获取查询结果集对象
SolrDocumentList results = queryResponse.getResults();
//获取查询条数
System.out.println("查询的条数为:"+results.getNumFound());
//遍历查询结果集
for (SolrDocument solrDocument : results) {
System.out.println("ID:"+solrDocument.get("id")+",名称:"+solrDocument.get("product_name")+",价格"+solrDocument.get("product_price"));
//获取高亮
Map<String,Map<String,List<String>>> highLighting = queryResponse.getHighlighting();
List<String> list = highLighting.get(solrDocument.get("id")).get("product_name");
if(list!=null && list.size()>0){
System.out.println(list.get(0));
}
}
}
【查询结果如下:】
查询的条数为:92
ID:5052,名称:家天下韩国新款可爱蝈蝈iphone4/4S苹果手机套硅胶保护壳,价格20.0
家天下韩国新款可爱蝈蝈iphone4/4S苹果<span style="color:red">手机</span>套硅胶保护壳
ID:5108,名称:家天下流氓兔挂耳式/耳挂式耳机 个性手机耳机 MP3 电脑耳机耳麦,价格20.0
家天下流氓兔挂耳式/耳挂式耳机 个性<span style="color:red">手机</span>耳机 MP3 电脑耳机耳麦
ID:5270,名称:家天下洛可无铅健康按压计量玻璃调味瓶调味罐三件套,价格20.0
ID:5272,名称:家天下牡丹圆形五格旋转调味盒RA-023,价格20.0
ID:5273,名称:家天下景泰蓝方形四格旋转调味盒RA-021,价格20.0
ID:5389,名称:家天下塑胶柄超强磁力磨刀器磨刀棒30cm,厨房锋刃要靠它!,价格20.0
ID:5978,名称:韩版糖果色女式手拿包单肩斜跨蝴蝶结小手包-蓝色,价格20.0
韩版糖果色女式<span style="color:red">手</span>拿包单肩斜跨蝴蝶结小<span style="color:red">手</span>包-蓝色
ID:123,名称:家天下热品愤怒的小鸟音乐午睡枕,价格19.0
ID:203,名称:家天下喜洋洋音乐午睡枕,价格19.0
ID:205,名称:家天下面包超人高保真音乐午睡枕,价格19.0