前一阵子花了一点时间来玩Solr,但立即被我们可以在一些更大的数据集上获得的性能所震撼。
这是我的一些初始设置和配置学习信息,也许可以帮助某人启动它并更快地运行。
首先在Windows上进行设置。

下载并解压缩Apache Tomcat和Solr,然后将其复制到您的工作文件夹中。

Tomcat设置

如果要将tomcat作为服务使用以下方法进行安装:
bin \ service.bat安装
在conf。下编辑tomcat用户:

<role rolename="admin"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="admin,manager-gui"/>

如果要使用HTTP-GET使用国际字符(> 127)查询Solr,则必须通过接受百分比编码的UTF-8将Tomcat配置为符合URI标准。 添加:URIEncoding ='UTF-8'

<connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"
URIEncoding="UTF-8" />

到conf / server.xml

将example \ solr的内容复制到solr主目录D:\ Java \ apache-solr-3.6.0 \ home
在$ CATALINA_HOME / conf / Catalina / localhost / solr.xml上创建指向您的Solr主目录的代码片段。

<?xml version="1.0" encoding="UTF-8"?>
<context docBase="D:\Java\apache-tomcat-7.0.27\webapps\solr.war" debug="0" crossContext="true" ><environment name="solr/home" type="java.lang.String" value="D:\Java\apache-solr-3.6.0\home" override="true" />
</Context>

启动tomcat,登录,部署solr.war。

Solr设置

它应该在http:// localhost:8080 / solr / admin /上可用。要使用SolrJ创建快速测试,创建并读取数据:抓取以下Maven库:

<dependency><groupid>org.apache.solr</groupId><artifactid>apache-solr-solrj</artifactId><version>3.6.0</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.apache.httpcomponents</groupId><artifactid>httpclient</artifactId><version>4.1</version><scope>compile</scope></dependency><dependency><groupid>org.apache.httpcomponents</groupId><artifactid>httpcore</artifactId><version>4.1</version><scope>compile</scope></dependency><dependency><groupid>org.apache.james</groupId><artifactid>apache-mime4j</artifactId><version>0.6.1</version><scope>compile</scope></dependency><dependency><groupid>org.apache.httpcomponents</groupId><artifactid>httpmime</artifactId><version>4.1</version><scope>compile</scope></dependency><dependency><groupid>org.slf4j</groupId><artifactid>slf4j-api</artifactId><version>1.6.1</version><scope>compile</scope></dependency><dependency><groupid>commons-logging</groupId><artifactid>commons-logging</artifactId><version>1.1.1</version><scope>compile</scope></dependency><dependency><groupid>junit</groupId><artifactid>junit</artifactId><version>4.9</version><scope>test</scope></dependency>

JUnit测试:

package za.co.discovery.ecs.solr.test;import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;@RunWith(JUnit4.class)
public class TestSolr {private SolrServer server;/*** setup.*/@Beforepublic void setup() {server = new HttpSolrServer("http://localhost:8080/solr/");try {server.deleteByQuery("*:*");} catch (SolrServerException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/*** Test Adding.** @throws MalformedURLException error*/@Testpublic void testAdding() throws MalformedURLException {try {final SolrInputDocument doc1 = new SolrInputDocument();doc1.addField("id", "id1", 1.0f);doc1.addField("name", "doc1", 1.0f);doc1.addField("price", 10);final SolrInputDocument doc2 = new SolrInputDocument();doc2.addField("id", "id2", 1.0f);doc2.addField("name", "doc2", 1.0f);doc2.addField("price", 20);final Collection<solrinputdocument> docs = new ArrayList<solrinputdocument>();docs.add(doc1);docs.add(doc2);server.add(docs);server.commit();final SolrQuery query = new SolrQuery();query.setQuery("*:*");query.addSortField("price", SolrQuery.ORDER.asc);final QueryResponse rsp = server.query(query);final SolrDocumentList solrDocumentList = rsp.getResults();for (final SolrDocument doc : solrDocumentList) {final String name = (String) doc.getFieldValue("name");final String id = (String) doc.getFieldValue("id"); //id is the uniqueKey fieldSystem.out.println("Name:" + name + " id:" + id);}} catch (SolrServerException e) {e.printStackTrace();Assert.fail(e.getMessage());} catch (IOException e) {e.printStackTrace();Assert.fail(e.getMessage());}}}

直接从数据库添加数据

首先,您需要将相关的数据库库添加到添加的类路径中。 然后按如下所示创建data-config.xml,如果需要自定义字段,则可以在dataconfig.xml下方显示的schema.xml中的fields标记下指定这些字段

<dataconfig><datasource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1525:DB" user="user" password="pass"/><document name="products"><entity name="item" query="select * from demo"><field column="ID" name="id" /><field column="DEMO" name="demo" /><entity name="feature" query="select description from feature where item_id='${item.ID}'"><field name="features" column="description" /></entity><entity name="item_category" query="select CATEGORY_ID from item_category where item_id='${item.ID}'"><entity name="category" query="select description from category where id = '${item_category.CATEGORY_ID}'"><field column="description" name="cat" /></entity></entity></entity></document>
</dataConfig>

schema.xml中的一个自定义字段:

<fields><field name="DEMO" type="string" indexed="true" stored="true" required="true" />
</fields

添加到solrconfig.xml中,确保指向data-config.xml,处理程序必须在solrconfig.xml中注册,如下所示

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst>
</requestHandler>

完成所有设置后,可以使用以下操作完成完全导入:
http:// localhost:8080 / solr / admin / dataimport?command = full-import

这样一来,您就可以快速进行闪电般的数据检索了。

参考: Zen上的 JCG合作伙伴 Brian Du Preez在IT博客上通过Tomcat在Apache上设置和使用Apache Solr 。

翻译自: https://www.javacodegeeks.com/2012/10/setting-up-and-playing-with-apache-solr.html

在Tomcat上设置和使用Apache Solr相关推荐

  1. 如何在Ubuntu 18.04上设置Apache虚拟主机

    The Apache HTTP Web server is a powerful, free and open source web server that has been, and remains ...

  2. tomcat设置php root,apache+tomcat+php搭建

    Linux全能web服务器配置方案 纲要: 一,Apache的安装 二,编译安装PHP 三,JSP环境的支持 四,企业虚拟主机配置实战方案 五,Web服务环境支持测试 一,Apache(httpd)的 ...

  3. Apache Solr 未授权上传(RCE)漏洞(CVE-2020-13957)的原理分析与验证

     聚焦源代码安全,网罗国内外最新资讯! 01 漏洞简介 Apache Solr 发布公告,旧版本的ConfigSet API 中存在未授权上传漏洞风险,被利用可能导致 RCE (远程代码执行). 受影 ...

  4. tomcat上部署的solr的移植以及数据的备份与恢复

    背景:移植系统,需要将原来服务器上的solr移植到新系统,考虑的可能受版本问题的影响,所以没有单独安装环境,直接复制了原来服务器的solr-home和tomcat(含有solr)到新服务器.最普遍的遇 ...

  5. 服务器上tomcat修改内存,8g服务器tomcat内存设置

    8g服务器tomcat内存设置 内容精选 换一换 系统每30秒周期性检测HBase服务堆内存使用状态,当检测到HBase服务堆内存使用率超出阈值(最大内存的90%)时产生该告警.若集群启用了多实例功能 ...

  6. tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤

    tomcat配置重定向 Secured Socket Layer (SSL) is the cryptography protocol to provide message security over ...

  7. 搜索引擎之---Apache solr的实现

    Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇分两部分的文章中,Lucene Java™ 的提交人 Grant Ingersoll ...

  8. apache solr远程代码执行漏洞(cve-2019-0193)

    简介 Apache Solr是一个企业级搜索平台,用Java编写且开源,基于Apache Lucene项目. 主要功能包括: full-text search 全文搜索 hit highlightin ...

  9. solr7在tomcat上的部署

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 solr是基于lucence的企业级搜索服务器.之前使用的都是4.x版本,但是在5.x之后solr的目录结构已经发生 ...

最新文章

  1. JavaScript新鲜事·第6期
  2. [教程] 谈谈网页设计中的字体应用 (2) serif 和 sans-serif
  3. 网络服务之DNS基本应用
  4. HandlerInterceptor和HandlerExceptionResolver 如何在DispatcherServlet中生效?
  5. (转)响应式Web设计是大势所趋还是时代的产物
  6. java名称服务_java – UnknownHostException:名称或服务未知
  7. java 同步块原理_Java同步代码块和同步方法原理与应用案例详解
  8. 2014年10月30日-----SQL的基础知识
  9. 用 Python 创建你自己的加密货币(附源码)
  10. 【基于MATLAB 的VQ声纹识别系统】
  11. 我爱淘二次冲刺阶段4
  12. oracle赋权directory,ORACLE DIRECTORY目录管理步骤
  13. 不容错过的 能源logo设计灵感 标志设计
  14. 单板电源设计(LDO、DC/DC)
  15. phpadmin 导入数据
  16. 马云的又一招棋,平台基因怎么让飞猪成为出境游领军者
  17. 解决ssh packet_write_wait: Connection to 192.168.xx.xx port 22: Broken pipe的问题
  18. 读书笔记:多智能体机器学习(二)
  19. python升级pip版本后,pycharm还是显示老版本的解决办法
  20. 两个list集合去重,一个list集合去重

热门文章

  1. (转) SpringBoot接入两套kafka集群
  2. mybatis_user_guide(3)XML配置
  3. 打印结果和调试结果不一样(C语言)
  4. 一文理清Cookie、Session、Token
  5. buildpack_使用Buildpack容器化Spring Boot应用程序
  6. gc垃圾收集器 与gc算法_GC解释:收集器概述
  7. 如何在Java JVM中处理图像和视频
  8. saml2_向SAML响应中添加自定义声明–(如何为WSO2 Identity Server编写自定义声明处理程序)...
  9. jersey spring_实施Jersey 2 Spring集成
  10. jee web_您基于JEE的Web项目的结构是什么?