javascript
Spring Data Solr教程:配置
在我的Spring Data Solr教程的上一部分中,我們了解到Solr提供了一個類似REST的HTTP API,該API可用于向Solr索引添加信息并針對索引數據執行查詢。 問題在于,在開發環境中運行單獨的Solr實例有點麻煩。
但是,并非所有希望都因此而喪失,因為Solr提供了兩個可供我們在應用程序中使用的替代服務器實現。 這些實現如下所述:
- 嵌入式Solr服務器直接連接到Solr核心。 我們可以將此服務器用于開發目的,但我們還必須記住
不建議在生產環境中使用它 。 但是,在開發環境中,使用嵌入式Solr服務器仍然是可行的選擇。 - HTTP Solr服務器通過使用HTTP連接到外部Solr服務器。 這是推薦使用Solr搜索服務器的方式,這就是為什么我們應該始終在生產環境中使用它的原因。
此博客文章描述了如何使用Maven獲得所需的依賴關系。 我們還將學習配置Spring Data Solr以在開發環境中使用嵌入式Solr服務器,在生產環境中使用HTTP Solr服務器。
注意 :這些博客條目提供了其他信息,可以幫助我們理解此博客條目中描述的概念:
- 使用Maven運行Solr
- Spring Data Solr教程:Solr簡介
讓我們開始吧。
使用Maven獲取所需的依賴關系
通過執行以下步驟,我們可以使用Maven獲得所需的依賴關系:
下面將更詳細地描述這兩個步驟。
將Spring Milestone Maven存儲庫添加到POM文件
通過將以下XML添加到pom.xml文件中,我們可以將Spring里程碑Maven存儲庫添加到我們的POM文件中:
<repositories><repository><id>spring-milestone</id><name>Spring Milestone Maven Repository</name><url>http://repo.springsource.org/libs-milestone</url></repository> </repositories>將所需依賴項添加到POM文件
我們可以按照以下步驟將所需的依賴項添加到POM文件:
我們可以通過將以下XML添加到POM文件的“依賴關系”部分來完成這些步驟:
<!-- Spring Data Solr --> <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-solr</artifactId><version>1.0.0.RC1</version> </dependency><!-- Required by embedded solr server --> <dependency><groupId>org.apache.solr</groupId><artifactId>solr-core</artifactId><version>4.1.0</version><exclusions><exclusion><artifactId>slf4j-jdk14</artifactId><groupId>org.slf4j</groupId></exclusion></exclusions> </dependency>配置Spring Data Solr
本節描述了我們如何配置Spring Data Solr以在開發和生產環境中使用不同的Solr服務器。 我們將在開發環境中使用嵌入式Solr服務器,在生產環境中使用HTTP Solr服務器。
我們可以按照以下步驟配置Spring Data Solr:
在以下小節中將更詳細地描述這些步驟。
創建屬性文件
我們的屬性文件的名稱為application.properties ,我們將使用它來配置兩個屬性,如下所述:
- solr.server.url屬性指定使用的Solr服務器的URL。 此屬性的值用于配置在生產環境中使用的HTTP Solr服務器。
- solr.solr.home配置Solr的主目錄。 此屬性的值用于配置開發環境中使用的嵌入式Solr服務器的主目錄。
application.properties文件的內容如下所示:
solr.server.url=http://localhost:8983/solr/ solr.solr.home=配置嵌入式Solr服務器
本小節描述了如何在開發環境中配置Spring Data Solr以使用嵌入式Solr服務器。
Java配置
我們可以按照以下步驟創建一個配置類來配置嵌入式Solr服務器:
EmbeddedSolrContext類的源代碼如下所示:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; import org.springframework.data.solr.core.SolrTemplate; import org.springframework.data.solr.repository.config.EnableSolrRepositories; import org.springframework.data.solr.server.support.EmbeddedSolrServerFactoryBean;import javax.annotation.Resource;@Configuration @EnableSolrRepositories("net.petrikainulainen.spring.datasolr.todo.repository.solr") @Profile("dev") @PropertySource("classpath:application.properties") public class EmbeddedSolrContext {@Resourceprivate Environment environment;@Beanpublic EmbeddedSolrServerFactoryBean solrServerFactoryBean() {EmbeddedSolrServerFactoryBean factory = new EmbeddedSolrServerFactoryBean();factory.setSolrHome(environment.getRequiredProperty("solr.solr.home"));return factory;}@Beanpublic SolrTemplate solrTemplate() throws Exception {return new SolrTemplate(solrServerFactoryBean().getObject());} }XML配置
通過執行以下步驟,我們可以為嵌入式Solr服務器創建XML配置文件:
exampleApplicationContext-solr.xml文件的內容如下所示:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:solr="http://www.springframework.org/schema/data/solr"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr.xsd"><context:property-placeholder location="classpath:application.properties"/><!-- Enable Solr repositories and configure repository base package --><solr:repositories base-package="net.petrikainulainen.spring.datasolr.todo.repository.solr"/><!-- Bean definitions for the dev profile --><beans profile="dev"><!-- Configures embedded Solr server --><solr:embedded-solr-server id="solrServer" solrHome="${solr.solr.home}"/><!-- Configures Solr template --><bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate"><constructor-arg index="0" ref="solrServer"/></bean></beans><!-- Bean definitions for the prod profile are omitted --> </beans>配置Http Solr服務器
本小節描述了如何配置Spring Data Solr以在生產環境中使用HTTP Solr服務器。
Java配置
我們可以按照以下步驟創建一個配置類來配置HTTP Solr服務器:
HttpSolrContext類的源代碼如下所示:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; import org.springframework.data.solr.core.SolrTemplate; import org.springframework.data.solr.repository.config.EnableSolrRepositories; import org.springframework.data.solr.server.support.HttpSolrServerFactoryBean;import javax.annotation.Resource;@Configuration @EnableSolrRepositories("net.petrikainulainen.spring.datasolr.todo.repository.solr") @Profile("prod") @PropertySource("classpath:application.properties") public class HttpSolrContext {@Resourceprivate Environment environment;@Beanpublic HttpSolrServerFactoryBean solrServerFactoryBean() {HttpSolrServerFactoryBean factory = new HttpSolrServerFactoryBean();factory.setUrl(environment.getRequiredProperty("solr.server.url"));return factory;}@Beanpublic SolrTemplate solrTemplate() throws Exception {return new SolrTemplate(solrServerFactoryBean().getObject());} }XML配置
通過執行以下步驟,我們可以為HTTP Solr服務器創建XML配置文件:
exampleApplicationContext-solr.xml文件的內容如下所示:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:solr="http://www.springframework.org/schema/data/solr"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr.xsd"><context:property-placeholder location="classpath:application.properties"/><!-- Enable Solr repositories and configure repository base package --><solr:repositories base-package="net.petrikainulainen.spring.datasolr.todo.repository.solr"/><!-- Bean definitions for the dev profile are omitted --><!-- Bean definitions for the prod profile --><beans profile="prod"><!-- Configures HTTP Solr server --><solr:solr-server id="solrServer" url="${solr.server.url}"/><!-- Configures Solr template --><bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate"><constructor-arg index="0" ref="solrServer"/></bean></beans> </beans>設置活動Bean定義配置文件
我們可以通過設置spring.profiles.active系統變量的值來選擇活動bean定義概要文件。 下面描述了該系統變量的允許值(在示例應用程序的上下文中):
- 通過將spring.profiles.active系統變量的值設置為'dev',我們可以配置我們的應用程序使其在開發配置文件中運行。
- 當我們想要配置我們的應用程序以在生產配置文件中運行時,我們必須將spring.profiles.active系統變量的設置為'prod'。
通過執行以下步驟,我們可以將示例應用程序配置為支持兩個概要文件:
下面將更詳細地描述這些步驟。
將所需的配置文件添加到POM文件
我們可以按照以下步驟將所需的配置文件添加到我們的Maven構建中:
我們的Maven配置文件的配置如下所示:
<profiles><profile><id>dev</id><properties><build.profile.id>dev</build.profile.id></properties></profile><profile><id>prod</id><properties><build.profile.id>prod</build.profile.id></properties></profile> </profiles>為系統屬性創建特定于配置文件的屬性文件
特定于個人檔案的屬性文件位于個人檔案目錄的子目錄中。 每個子目錄的名稱都與pom.xml文件中配置的build.profile.id屬性的值匹配。
我們可以按照以下步驟為系統屬性創建特定于概要文件的屬性文件:
用于配置開發概要文件的系統屬性的屬性文件的內容如下所示:
spring.profiles.active=dev用于配置生產概要文件的系統屬性的屬性文件的內容如下所示:
spring.profiles.active=prod配置Jetty Maven插件
我們可以按照以下步驟配置Jetty Maven插件 :
Jetty Maven插件的配置如下所示:
<plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.5.v20120716</version><configuration><stopKey>todostop</stopKey><stopPort>9999</stopPort><systemPropertiesFile>${project.basedir}/profiles/${build.profile.id}/system.properties</systemPropertiesFile></configuration></plugin>摘要
現在,我們已經使用Maven成功地獲得了必需的依賴關系,并配置了Spring Data Solr。 這篇博客文章教會了我們四件事:
- 我們學會了使用Maven獲得所需的依賴關系。
- 我們知道我們僅應在開發環境中使用嵌入式Solr服務器,并了解了如何配置Spring Data Solr以使用它。
- 我們了解到,我們應該始終在生產環境中使用HTTP Solr服務器,并且知道如何配置Spring Data Solr以使用它。
- 我們知道如何使用Spring Framework的bean定義配置文件為開發和生產環境創建不同的配置。
我的Spring Data Solr教程的下一部分描述了如何向Solr索引添加新文檔,如何更新現有文檔的信息以及從Solr索引刪除文檔。
PS。 Github上提供了此博客條目的示例應用程序。
翻譯自: https://www.javacodegeeks.com/2013/05/spring-data-solr-tutorial-configuration.html
總結
以上是生活随笔為你收集整理的Spring Data Solr教程:配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手游充值折扣平台(安卓手游充值折扣)
- 下一篇: Spring Data Solr教程:C