码迷,mamicode.com
首页 > 其他好文 > 详细

solr练习

时间:2017-08-23 23:11:30      阅读:415      评论:0      收藏:0      [点我收藏+]

标签:创建   false   字段   object   启动   pen   stack   on()   res   

环境  Linux    tomcat7    solr 

技术分享

上linux解压IK  和 solr 新建文件夹保存

技术分享

技术分享

1第一步复制jar  solor>example > ext 下的所有的jar拷贝至tomcatlib

 

2solr.war拷贝至tomcatwebapps下注意解压   war解压不会保留目录一定要先创建一个文件夹 mkdir   solr。 然后将其解压至该文件夹中解压war使用unzip命令  然后删除其war包  不删除tomcat的运行将其解压会替换

技术分享

 

技术分享3进入tomcatsolr解压下面然后

技术分享

注意去掉注释  让其找到solr的家一定要注意路径,楼主不是用的root是普通权限

技术分享

IK分词器、

ik包解压到一个文件夹中

 

 

技术分享

技术分享

技术分享

技术分享

1技术分享

2

2

完成第二步可以启动Tomcat   http://linuxIp:8081/solr/#/

技术分享

 

 

 技术分享

 技术分享

技术分享就看看这文件>,<

技术分享

 

 

移动区至solr家里的conf目录找到配置文件

技术分享

 

 

 ==========================================

<!-- 自定义数据类型 支持IKAnalyzer-->

  <fieldType name="text_ik" class="solr.TextField">

     <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>

 <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>

  </fieldType>

  <field name="name_ik" type="text_ik" indexed="true" stored="true"/>

技术分享

 

 

==================================================

扩展词

 技术分享

 

 技术分享

 

打开注释

2创建文件ext.dic

技术分享

编辑

 技术分享

停止词

 

 技术分享

不能全部在一行 ,只能一行一个词

效果明显和上面不一样了,,,,

技术分享

Ubuntu上时刻要记住权限的问题   害我找了好久,用root权限启动就OK了

 

http://blog.csdn.net/u013022826/article/details/58198993

技术分享

技术分享

技术分享

 

使用Spring插入数据

   SolrInputDocument doc = new SolrInputDocument();

      doc.setField("id", s);

      doc.setField("name_ik", ption.getPtname());

      float sourceF = Float.valueOf(ption.getMoney());

      doc.setField("price", sourceF);

      doc.setField("description",ption.getIntroduce());

      doc.setField("brandId",ption.getPttype());

     

      solrserver.add(doc);

      solrserver.commit();

      ptservice.addPt(ption);

 

技术分享

技术分享技术分享

从solr服务器拿数据展示  Spring

 

 

public List<Position> selectPositionListFormDolr(String keyWord){

   List<Position> position =new ArrayList<Position>();

   SolrQuery solrQuery =new SolrQuery();

   StringBuilder params=new StringBuilder();

   params.append("keyWord=").append(keyWord);

   

   solrQuery.set("q", "name_ik:"+keyWord);

   solrQuery.setStart(0);

   solrQuery.setRows(20);

   solrQuery.addSort("price", ORDER.asc);//排序

   solrQuery.setHighlight(true);//开启高亮

   solrQuery.addHighlightField("name_ik");//设置高亮字段

   solrQuery.setHighlightSimplePre("<span style=‘color:red‘>");

   solrQuery.setHighlightSimplePost("</span>");

   try {

QueryResponse resp =  solrServer.query(solrQuery);

//去高亮

Map<String, Map<String, List<String>>> highlighting = resp.getHighlighting();

SolrDocumentList results = resp.getResults();

System.out.println(results.size());

for(int i=0;i<results.size();i++){

Position positionObj =new Position();

String Id = (String) results.get(i).get("id");

//String name = (String) results.get(i).get("name_ik");从高亮容器中去名称

String description = (String) results.get(i).get("description");

String brandid = (String) results.get(i).get("brandId");

 Object object = results.get(i).get("price");

positionObj.setMoney(object.toString());

positionObj.setPttype(brandid);

positionObj.setIntroduce(description);

 

Map<String, List<String>> map = highlighting.get(Id);//第二个Map

List<String> list = map.get("name_ik");//设置关键字

positionObj.setPtname(list.get(0));

 

positionObj.setPtid(Id);

position.add(positionObj);

}

 

results.getNumFound();

 

} catch (SolrServerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

   

   

      return position;

   

   }

 

技术分享  技术分享

 

好啦几天的solr练习全部奉上。。。。如果那里不是很清楚就多百度百度吧>><<

 

solr练习

标签:创建   false   字段   object   启动   pen   stack   on()   res   

原文地址:http://www.cnblogs.com/jiahaoJAVA/p/7420492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!