• solr练习


    环境  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练习全部奉上。。。。如果那里不是很清楚就多百度百度吧>><<

  • 相关阅读:
    mysql/mariadb基于ssl的主从复制
    原创工具binlog2sql:从MySQL binlog得到你要的SQL
    [转]MySQL DBA面试全揭秘
    mysql my.cnf 配置建议
    mysql配置文件 /etc/my.cnf 详细解释
    [转]expect实现ssh自动交互
    Linux中的lo回环接口详细介绍
    Docker最全教程——从理论到实战(五)
    Docker最全教程——从理论到实战(四)
    Docker最全教程——从理论到实战(一)
  • 原文地址:https://www.cnblogs.com/jiahaoJAVA/p/7420492.html
Copyright © 2020-2023  润新知