日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

solr 的maven_使用Maven运行Solr

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr 的maven_使用Maven运行Solr 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

solr 的maven

使用Maven運行Solr

Solr是一個開源搜索服務器,它是使用Lucene Core的索引和搜索功能構建的,它可以用于使用幾乎任何編程語言來實現可擴展的搜索引擎。

盡管Solr具有許多優點,但建立一個開發環境并不是其中之一。 這篇博客文章描述了我們如何使用Maven運行Solr,并確保每個開發人員都使用相同的配置,架構和Solr版本。

我們的Maven構建的要求如下:

  • 我們的Maven構建的屬性必須從外部屬性文件中讀取。 該規則的唯一例外是,依賴項的版本號在我們的POM文件中聲明。
  • 啟動我們的Solr實例時,構建過程必須將Solr配置文件復制到正確的目錄。
  • 當開發人員在命令提示符下執行mvn clean命令時,構建過程必須清除配置文件。
  • 必須能夠通過使用Jetty Maven插件啟動我們的Solr實例。

通過執行以下步驟,我們可以滿足這些要求:

  • 創建一個POM文件。
  • 獲取所需的依賴項。
  • 獲取Solr配置文件。
  • 創建屬性文件,其中包含在我們的Maven構建中使用的屬性。
  • 編輯solr.xml文件。
  • 配置屬性Maven插件。
  • 配置復制Maven插件。
  • 配置Jetty Maven插件。
  • 下面將更詳細地描述這些步驟。

    創建POM文件

    首先,我們必須為Web應用程序項目創建POM文件。 我們的POM文件的框架如下所示:

    <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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.petrikainulainen.maven</groupId><artifactId>running-solr-with-maven</artifactId><packaging>war</packaging><version>0.1</version><profiles><!-- Add profile configuration here --></profiles><dependencies><!-- Add dependencies here --></dependencies><build><finalName>solr</finalName><!-- Add filter configuration here --><!-- Add resources configuration here --><plugins><!-- Add plugin configuration here --></plugins></build> </project>

    獲取所需的依賴關系

    我們唯一需要的依賴是Solr 4.1.0(戰爭)。 換句話說,我們唯一要做的就是將以下依賴項聲明添加到我們的POM文件的依賴項部分:

    <dependency><groupId>org.apache.solr</groupId><artifactId>solr</artifactId><version>4.1.0</version><type>war</type> </dependency>

    獲取Solr配置文件

    通過執行以下步驟,我們可以獲取Solr配置文件:

  • 下載Solr 4.1.0的二進制發行版 。
  • 將下載的軟件包解壓縮到所需目錄。
  • 進入解壓縮的Solr二進制發行版的根目錄。
  • 將以下文件從目錄example / solr / collection1 / conf復制到目錄src / main / config : admin-extra.html,admin-extra-menu.menu-bottom.html,admin-extra.menu-top.hml ,currency.xml,elevate.xml,mapping-FoldToASCII.txt,mapping-ISOLatin1Accent.txt,protwords.xml,schema.xml,solrconfig.xml,spellings.txt,stopwords.txt,同義詞.txt和update-script.js 。
  • 將從目錄example / solr / collection1 / conf / lang找到的特定于語言的配置文件復制到目錄src / main / config / lang中 。
  • 將從示例example / solr / collection1 / conf / velocity目錄中找到的Velocity宏和其他文件復制到目錄src / main / config / velocity中 。
  • 將從目錄example / solr / collection1 / conf / xslt中找到的XSL樣式表復制到目錄src / main / config / xslt中 。
  • 將solr.xml文件從目錄exaple / solr / collection1復制到目錄src / main / resources 。
  • 創建目錄src / main / webapp / WEB-INF 。 此目錄是必需的,以便可以啟動Solr實例。
  • 現在,我們已經成功獲取了所需的文件,并準備進行下一個階段。

    創建屬性文件

    接下來是創建在Maven構建中使用的屬性文件,并將所需的構建配置文件配置添加到我們的POM文件中。 讓我們繼續前進,找出實現方法。

    首先,我們創建了在Maven構建中使用的屬性文件。 我們可以按照以下步驟進行操作:

  • 將目錄profile / dev創建到我們的Maven項目的根目錄。
  • 在profiles / dev目錄中創建一個屬性文件config.properties 。
  • 我們的屬性文件具有以下三個屬性:

    • solr.detault.core.directory屬性指定默認核心目錄的值。 這是在我們的Solr實例的主目錄下創建的目錄。 該目錄存儲我們的Solr實例及其數據的配置。
    • solr.default.core.name屬性指定默認核心的名稱。
    • solr.solr.home屬性表示我們的Solr安裝目錄的主目錄。

    config.properties文件的內容如下所示:

    #SOLR PROPERTIES #Configures the directory used to store the data and configuration of the Solr default core solr.default.core.directory=todo #Configures the name of the Solr default core. solr.default.core.name=todo#SYSTEM PROPERTIES #Configures the home directory of Solr. Set the preferred directory path here. solr.solr.home=

    其次,我們必須配置Maven構建的構建配置文件,并使用過濾來替換替換資源中包含的變量。 我們可以按照以下步驟進行操作:

  • 創建一個名為dev的配置文件,并確保它是我們構建的默認配置文件。
  • 聲明一個名為build.profile.id的屬性,并將其值設置為'dev'。
  • 創建一個過濾器,該過濾器讀取特定于配置文件的配置文件,并將從我們的資源中找到的變量替換為實際的屬性值。
  • 通過將以下配置文件聲明添加到我們的POM文件中,我們可以完成步驟1和步驟2:

    <profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><build.profile.id>dev</build.profile.id></properties> </profile>

    我們可以通過將以下XML添加到POM文件的build部分來完成第三步:

    <filters><filter>${project.basedir}/profiles/${build.profile.id}/config.properties</filter> </filters> <resources><resource><filtering>true</filtering><directory>src/main/resources</directory></resource> </resources>

    編輯solr.xml文件

    因為我們使用特定于配置文件的配置文件來配置Solr默認核心的名稱和實例目錄,所以我們必須對solr.xml文件進行更改。 這些更改描述如下:

  • 必須將solr.default.core.name屬性的值設置為cores元素的defaultCoreNameAttribute屬性的值。
  • 必須將solr.default.core.name屬性的值設置為核心元素的name屬性的值。
  • 必須將solr.default.core.directory屬性的值設置為核心元素的instanceDir屬性的值。
  • solr.xml文件的內容如下所示:

    <solr persistent="true"><cores adminPath="/admin/cores" defaultCoreName="${solr.default.core.name}" host="${host:}" hostPort="${jetty.port:}" hostContext="${hostContext:}" zkClientTimeout="${zkClientTimeout:15000}"><core name="${solr.default.core.name}" instanceDir="${solr.default.core.directory}" /></cores> </solr>

    配置屬性Maven插件

    因為我們希望從外部屬性文件中讀取POM文件中使用的所有屬性值,所以我們必須使用一個名為Properties Maven plugin的插件 。 我們可以按照以下步驟配置此插件:

  • 確保從配置文件特定的配置文件中讀取屬性。
  • 創建一個執行,該執行在Maven默認生命周期的初始化階段中運行Properties Maven插件的read-project-properties目標。
  • 創建一個執行,該執行在Maven清理生命周期的預清理階段中運行Properties Maven插件的讀取項目屬性目標。
  • Properties Maven插件的配置如下所示:

    <plugin><groupId>org.codehaus.mojo</groupId><artifactId>properties-maven-plugin</artifactId><version>1.0-alpha-2</version><configuration><files><!-- Properties are read from profile specific property file --><file>${project.basedir}/profiles/${build.profile.id}/config.properties</file></files></configuration><executions><!-- Load properties for the default lifecycle --><execution><id>default-lifecycle-properties</id><phase>initialize</phase><goals><goal>read-project-properties</goal></goals></execution><!-- Load properties for the clean lifecycle --><execution><id>clean-lifecycle-properties</id><phase>pre-clean</phase><goals><goal>read-project-properties</goal></goals></execution></executions> </plugin>

    配置復制Maven插件

    我們將使用Copy Maven插件有兩個目的:

  • 啟動Solr實例時,我們會將Solr配置文件復制到正確的目錄中。
  • 在命令提示符處執行命令mvn clean時,我們將刪除Solr配置文件。
  • 我們可以通過將以下XML添加到POM文件的插件部分來開始使用:

    <plugin><groupId>com.github.goldin</groupId><artifactId>copy-maven-plugin</artifactId><version>0.2.5</version><executions><!-- Add executions here --></executions> </plugin>

    讓我們繼續前進,了解如何配置Copy Maven插件以復制和刪除Solr配置文件。

    復制Solr配置文件

    我們可以按照以下步驟復制Solr配置文件:

  • 創建一個執行,該執行在Maven默認生命周期的編譯階段中運行Copy Maven插件的復制目標。
  • 將solr.xml文件復制到我們的Solr實例的主目錄。 復制文件時,請確保將屬性過濾應用于文件。
  • 將從src / main / config目錄找到的文件復制到solr.solr.home / solr.default.core.directory / conf目錄。
  • 將src / main / config / lang目錄中找到的特定于語言的配置文件復制到solr.solr.home / solr.detault.core.directory / conf / lang目錄中。
  • 將src / main / config / velocity目錄中找到的Velocity宏和其他文件復制到solr.solr.home / solr.detault.core.directory / conf / velocity目錄。
  • 將從src / main / config / xslt目錄中找到的XSL樣式表復制到solr.solr.home / solr.detault.core.directory / conf / xslt目錄中。
  • 我們執行的配置如下所示:

    <execution><id>copy-solr-config</id><phase>compile</phase><goals><goal>copy</goal></goals><configuration><resources><!--Copy solr.xml to correct directory and applies propertiesfiltering to it.--><resource><directory>${project.basedir}/src/main/resources</directory><filtering>true</filtering><targetPath>${solr.solr.home}</targetPath><includes><include>solr.xml</include></includes></resource><!-- Copy configuration files --><resource><directory>${project.basedir}/src/main/config</directory><targetPath>${solr.solr.home}/${solr.default.core.directory}/conf</targetPath><excludes><exclude>lang</exclude><exclude>velocity</exclude><exclude>xslt</exclude></excludes></resource><!-- Copy language specific configuration files --><resource><directory>${project.basedir}/src/main/config/lang</directory><targetPath>${solr.solr.home}/${solr.default.core.directory}/conf/lang</targetPath></resource><!-- Copy Velocity macros and other files --><resource><directory>${project.basedir}/src/main/config/velocity</directory><targetPath>${solr.solr.home}/${solr.default.core.directory}/conf/velocity</targetPath></resource><!-- Copy XSL style sheets --><resource><directory>${project.basedir}/src/main/config/xslt</directory><targetPath>${solr.solr.home}/${solr.default.core.directory}/conf/xslt</targetPath></resource></resources></configuration> </execution>

    刪除Solr配置文件

    我們可以按照以下步驟刪除Solr配置文件:

  • 創建一個執行,該執行在干凈的生命周期階段中運行Copy Maven插件的復制目標。
  • 如果找不到目錄,請確保構建不會失敗。
  • 刪除在我們的Maven項目的根目錄中創建的overlays目錄。
  • 刪除從我們的Solr實例的主目錄中找到的solr.xml文件。
  • 刪除從solr.solr.home / solr.default.core.directory目錄中找到的conf目錄。
  • 我們執行的配置如下所示:

    <execution><id>clean-solr</id><phase>clean</phase><goals><goal>copy</goal></goals><configuration><failIfNotFound>false</failIfNotFound><resources><!-- Clean the overlays directory from the project root directory --><resource><clean>true</clean><cleanEmptyDirectories>true</cleanEmptyDirectories><directory>${project.basedir}/overlays</directory><includes><include>**/**</include></includes></resource><!-- Remove the solr.xml file --><resource><clean>true</clean><directory>${solr.solr.home}</directory><includes><include>solr.xml</include></includes></resource><!-- Remove the conf directory --><resource><clean>true</clean><cleanEmptyDirectories>true</cleanEmptyDirectories><directory>${solr.solr.home}/${solr.default.core.directory}</directory><includes><include>conf</include></includes></resource></resources></configuration> </execution>

    配置Jetty Maven插件

    我們可以按照以下步驟配置Jetty Maven插件以運行Solr實例:

  • 配置Jetty偵聽端口8983。
  • 確保從配置文件特定的配置文件中讀取系統屬性。 該屬性文件包含一個名為solr.solr.home的屬性,該屬性指定我們的Solr實例的主目錄。
  • 指定我們應用程序的上下文路徑為/ solr 。
  • Jetty Maven插件的配置如下所示:

    <plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.8.v20121106</version><configuration><stopPort>9966</stopPort><stopKey>stop</stopKey><connectors><!-- Listen to port 8983 --><connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"><port>8983</port><maxIdleTime>60000</maxIdleTime></connector></connectors><!-- Read system properties from profile specific configuration file --><systemPropertiesFile>${project.basedir}/profiles/${build.profile.id}/config.properties</systemPropertiesFile><webApp><contextPath>/solr</contextPath></webApp></configuration> </plugin>

    運行Solr

    現在,我們已經創建了一個Maven構建,該構建可用于在開發環境中運行Solr。 啟動Solr實例有兩種選擇:

    • 我們可以在命令提示符下執行mvn jetty:run命令。
    • 我們可以在命令提示符下執行mvn jetty:run-war命令。

    啟動Solr之后,我們可以使用以下URL地址訪問其管理界面: http:// localhost:8983 / solr 。

    Github提供了示例應用程序 。 本示例使用自定義架構,因為我計劃在Spring Data Solr教程中使用它。 原始示例架構可從etc目錄中找到。

    參考:來自Petri Kainulainen博客的JCG合作伙伴 Petri Kainulainen 與Maven一起運行Solr 。

    翻譯自: https://www.javacodegeeks.com/2013/05/running-solr-with-maven.html

    solr 的maven

    總結

    以上是生活随笔為你收集整理的solr 的maven_使用Maven运行Solr的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。