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();
    }
}

在這裏插入圖片描述

【五】鏈接

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