solr8.0.0基本安裝和在springboot中的基本使用(win10)


1、下載solr

  下載地址:http://archive.apache.org/dist/lucene/solr/

  該地址可以也可以下載以前的版本,我這邊下載的solr-8.0.0.zip版本。下載完成之后放在的D:\project目錄下,然后解壓到當前目錄。

2、啟動、關閉solr

  在解壓之后的solr目錄中找到bin文件夾,進去之后右鍵進入Powershell輸入以下命令:

啟動 .\solr start
關閉 .\solr stop -all

3、創建core

  在solr目錄中的\server\solr文件夾中創建一個core文件夾,我這邊文件夾名稱叫做xjxcc。然后把\server\solr\configsets\sample_techproducts_configs下面的conf文件夾復制到剛才創建的core文件夾下面。

  完成上面操作之后啟動solr,啟動成功之后打開瀏覽器進入http://127.0.0.1:8983/solr/#/地址,就可以看見solr的管理界面。點擊左側的Core Admin,在新頁面的name和instanceDir輸入框中分別修改為剛才創建的core文件夾名稱(我這里是xjxcc),然后點擊下面Add Core按鈕即可成功創建core(本來截了一張操作圖,結果CSDN上傳圖片報未知錯誤)。

  創建成功之后,會在你剛才創建的core文件夾下面生成一個文件夾和一個文件,這樣即表示創建成功。

4、創建springboot項目和測試代碼

  怎么創建springboot項目就不說了,下面貼上主要文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xjxcc</groupId>
    <artifactId>solrTest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>solrTest</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath />
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-solr</artifactId>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
server:
  context-path: /
  port: 9633
spring:
  data:
    solr:
      #后面這個xjxcc就是core文件夾的名稱,這里也可以不用寫這個,如果這里不指定core,那么在代碼中使用的時候,就需要指定core。
      #代碼中可以指定core的地方有注釋可以看
      host: http://127.0.0.1:8983/solr/xjxcc
@EnableSwagger2
@RestController
@RequestMapping("/")
public class SolrController {

    @Autowired
    private SolrClient client;

    @PostMapping("/insert")
    public String insert(String content) throws IOException, SolrServerException {
        try {
            String idStr = String.valueOf(System.currentTimeMillis());
            SolrInputDocument doc = new SolrInputDocument();
            doc.setField("id", idStr);
            doc.setField("name", content);

            client.add(doc);//如果配置文件中沒有指定core,這個方法的第一個參數就需要指定core名稱,比如client.add("xjxcc", doc);
            client.commit();//如果配置文件中沒有指定core,這個方法的第一個參數就需要指定core名稱client.commit("xjxcc");
            return idStr;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "error";
    }
}

  然后啟動該項目之后,進入http://localhost:9633/swagger-ui.html地址即可測試插入索引操作。插入成功之后,在solr管理界面的左下方有一個下拉框,選擇你創建的core之后,再選擇Query,往下拖到最后,點擊Execute Query即可看見你剛才插入的索引。

 

其他問題:

  剛才我們代碼中插入了兩個列(id、name),如果你想新增一個列,比如名稱叫做zhangsan,然后啟動項目,在插入索引,在solr管理平台中就看不見這個列名和列對應的值,原因是id、name這兩列在solr中已經默認配置了。這種情況解決方式如下:

  在你創建的core文件夾下面,打開conf文件夾,修改里面的managed-schema文件,修改地點如下:

132行后面增加(后面這幾行隨意位置增加就可以)
<field name="zhangsan" type="text_general" indexed="true" stored="true"/>

245行后面增加(后面這幾行隨意位置增加就可以)
<copyField source="zhangsan" dest="text"/>

  修改完成之后重啟solr,然后重新插入索引就可以成功操作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM