Solr初识

Solr初识

【一】介绍

Solr是一个高性能,采用Java开发,Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东东时,你可能会打开某宝或者某东,像这样一搜,就能搜到很多东西,你知道你看到的这些数据都来自哪儿吗?百度一下你就知道!这些数据来自哪儿吗?等你了解完Solr后你就知道答案啦!

【二】安装solr

rz 
  • 解压solr
tar -zxvf solr-4.10.3 /usr/local/
  • 复制文件到tomcat服务器中
1、进入solr文件中
cd /usr/local/solr-4.10.3/example/webapps

2、复制solr.war
cd solr.war /usr/local/tomcat/webapps/

  • 解压war包
mkdir solr && unzip solr.war -d solr && rm -rf solr.war
  • 修改配置
 vim /usr/local/tomcat/webapps/solr/WEB-INF/web.xml

添加以下内容

  <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-4.10.3/example/solr</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

ps:/usr/local/solr-4.10.3/example/solr这个为路径

  • 添加必要的包
cd /usr/local/solr-4.10.3/example/lib/ext/   &&  cp * /usr/local/tomcat/lib/cd /usr/local/solr-4.10.3/example/lib/ext/ 
  • 启动tomcat
cd /usr/local/tomcat/bin

 ./startup.sh 
  • 访问
http://192.168.183.129:8080/solr

在这里插入图片描述

【三】添加中文分词器

3.1 GUI的基本使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 添加中文分词

1、传到tomcat服务器上
cp  /usr/local/IKAnalyzer2012FF_u1.jar   /usr/local/tomcat/lib/

2、新建文件
mkdir /usr/local/tomcat/webapps/solr/WEB-INF/classes

3、复制文件到文件夹
cp  /usr/local/IKAnalyzer.cfg.xml   /usr/local/tomcat/webapps/solr/WEB-INF/classes

cp  /usr/local/stopword.dic   /usr/local/tomcat/webapps/solr/WEB-INF/classes

  • 修改配置文件
vim /usr/local/solr-4.10.3/example/solr/collection1/conf/schema.xml

添加如下的配置:

 <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>
  • 添加自己的分词库
vim /usr/local/tomcat/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml 

在这里插入图片描述

  • 添加库
touch /usr/local/tomcat/webapps/solr/WEB-INF/classes/ext.dic

添加内容自定义

冯文
静态资源
今天要学习
java
闭关修炼
  • 测试
    在这里插入图片描述

【四】javaBean结合solr

4.1 创建maven项目

在这里插入图片描述

4.2 添加依赖

 <dependency>
      <groupId>org.apache.solr</groupId>
      <artifactId>solr-solrj</artifactId>
      <version>8.0.0</version>
</dependency>

<dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.20</version>
          <scope>provided</scope>
</dependency>

4.3 创建javaBean

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student implements Serializable {

    @Field("id")
    private String id;

    @Field("studentName")
    private String studentName;

    @Field("studentAge")
    private Integer studentAge;

    @Field("studentGrander")
    private Integer studentGrander;
    
}
public class Main {
    public static void main(String args[]) throws IOException, SolrServerException {

        String url = "http://192.168.183.129:8080/solr";
        SolrClient client = new HttpSolrClient.Builder(url).build();

        queryStudent(client);

    }

    public static void delete(SolrClient client) throws IOException, SolrServerException {
        client.deleteById("2.me");
        client.commit();
    }

    public static void saveStudent(SolrClient client) throws IOException, SolrServerException {

        for (int i = 0; i < 10; i++) {
            String id = (i+10)+"";
            String studentName = "学生"+i;
            Integer studentAge = i+20;
            Integer studentGrander = i%2;
            client.addBean(new Student(id,studentName,studentAge,studentGrander));
        }
        client.commit();

    }

    public static void queryStudent(SolrClient client) throws IOException, SolrServerException {
        SolrQuery query = new SolrQuery();
        query.set("q","studentName:学生 AND studentAge:[22 TO 27]");
        query.set("start",0);
        query.set("rows",5);
        query.set("sort","studentAge asc");


        QueryResponse response = client.query(query);

        List<Student> studentList = response.getBeans(Student.class);
        System.out.println(studentList);
    }
    

    public static void test(SolrClient client) throws IOException, SolrServerException {
        SolrInputDocument document = new SolrInputDocument();
        document.setField("id","3");
        document.setField("name","hong");

        client.add(document);
        client.commit();
    }
}

在这里插入图片描述

【五】链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章