jar包搜索_solr搜索引擎安装到入门

电商网站中查询商品通常会用到搜索引擎,solr就是其中一种.今天讲一下solr的安装和SpringDataSolr运用,solr是建立在Lucene上的,可以说是它的应用,而SpringDataSolr对Solr进行了封装.
1.下载solr压缩文件,将solr的war(版本4.10.3)放置tomcat的webapp目录下,启动tomcat,会解压solr的jar包.
solr目录如图:

64c8f0915ef463430a0dd8222b2c8e0c.png

2.将所需要的扩展包放入到WEB-INF的lib目录(如果没有就新建),扩展包如图:

be53c86bfbc56b5dfb2f735636e55332.png

3.将压缩文件中的solr文件夹,作为solrhome,目录如下:

0d053589795c12080069b87bf2d9dbcf.png

4.修改apache-tomcat-7.0.52webappssolrWEB-INF下的web.xml文件,确定solrhome的位置(有点像maven仓库配置),如图:

fdbb01042693510c693eb995cc5765d3.png

5.启动tomcat,访问http://localhost:8080/solr.如图:

c6ff8d3e9290fa41e1122ac4cdca926f.png

6.解压中文分词器,目录如下:

d102e8353d6c90530fd03f705ef9ba6d.png

7.将中文分词器jar放置tomcat中solr的WEB-INF/lib目录下,将ext_stopword.dic,IKAnalyzer.cfg.xml,mydict.dic放置WEB-INF/classes目录(没有的话新建该目录)下,如图:

3ac9e25e240b20d4ac731c318a1fa4ea.png

8.修改solrhomecollection1conf目录下schema.xml文件,将中文分词器作为一个新的fieldType,如图:

8b0d4adf168cc5e8ff7ac0fe1a3c5295.png

9.新建我们需要的字段field,字段类型可为text_ik,由于该分词器的jar有点问题,此处不以text_ik测试,如图:

57ac3321f074cea1e74b43a335e5400e.png

配置基本完成,接下来新建java项目:
10.java工程目录如下 AppTest可以忽略:

fc35332b00599ee7290cf1de2f09d2bc.png

1.pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>4.0.0cn.com.study  dandingge  1.0-SNAPSHOTdandinggehttp://www.example.comUTF-81.71.75.1.5.RELEASEorg.springframework      spring-context      ${spring.version}org.springframework      spring-beans      ${spring.version}org.springframework      spring-webmvc      ${spring.version}org.springframework      spring-jdbc      ${spring.version}org.springframework      spring-aspects      ${spring.version}org.springframework      spring-jms      ${spring.version}org.springframework      spring-context-support      ${spring.version}junit      junit      4.12testorg.springframework.data      spring-data-solr      1.5.5.RELEASEorg.springframework      spring-test      5.1.5.RELEASEtest          maven-clean-plugin          3.1.0          maven-resources-plugin          3.0.2          maven-compiler-plugin          3.8.0          maven-surefire-plugin          2.22.1          maven-jar-plugin          3.0.2          maven-install-plugin          2.5.2          maven-deploy-plugin          2.8.2          maven-site-plugin          3.7.1          maven-project-info-reports-plugin          3.0.0

12.applicationContext-solr.xml文件

<?xml version="1.0" encoding="UTF-8"?>

13.MyItem.java文件:

package testSolr;import org.apache.solr.client.solrj.beans.Field;import org.springframework.stereotype.Component;public class MyItem {    @Field    private long id;   //必须有,否则测试时会报错    @Field("my_id")    private long myId;    @Field("my_name")    private String name;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public long getMyId() {        return myId;    }    public void setMyId(long myId) {        this.myId = myId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

14.TestSolr.java文件

package testSolr;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.solr.core.SolrTemplate;import org.springframework.data.solr.core.query.Criteria;import org.springframework.data.solr.core.query.Query;import org.springframework.data.solr.core.query.SimpleQuery;import org.springframework.data.solr.core.query.result.ScoredPage;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath*:applicationContext-solr.xml")public class TestSolr {    @Autowired    private SolrTemplate solrTemplate;    @Test    public void testCRUD(){        MyItem item = new MyItem();        item.setId(1L);        item.setName("张三");  //新增        solrTemplate.saveBean(item);        solrTemplate.commit();        //修改        item.setName("李四");        solrTemplate.saveBean(item);        solrTemplate.commit();        MyItem myItem = solrTemplate.getById(1, MyItem.class);        System.out.println(myItem.getName());  //李四        solrTemplate.deleteById("1");  //删除        solrTemplate.commit();    }    @Test    public void testQueryPage(){        Query query = new SimpleQuery("*:*");  //查询全部        query.setOffset(2);  //起始位置        query.setRows(10); //每页记录数        ScoredPage items =  solrTemplate.queryForPage(query, MyItem.class);        System.out.println("总记录数" + items.getTotalElements());        System.out.println("记录" + items.getContent());    }    @Test    public void testPageQueryMutil(){        Query query=new SimpleQuery("*:*");        Criteria criteria=new Criteria("my_name").contains("2");        query.addCriteria(criteria);        //query.setOffset(20);//开始索引(默认0)        //query.setRows(20);//每页记录数(默认10)        ScoredPage page = solrTemplate.queryForPage(query, MyItem.class);    }    @Test    public void testDeleteAll(){        Query query = new SimpleQuery("*:*");        solrTemplate.delete(query);        solrTemplate.commit();   //提交    }}

总结:相应的操作都可以在solr界面查看结果. 关于配置 linux和windows大同小异;其他操作,比喻高亮显示,过滤查询等等,都有对应的api;

a872dd29993b178c273b833f8b9d621e.png

step by step forward

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值