当前位置: 首页 > 编程日记 > 正文

Solr安装与配置

需要Java Runtime Environment(JRE) 1.7或更高版本,先验证。

# java -version


如果没有安装好Java环境,需要参考:http://blog.csdn.net/unix21/article/details/18774417


无需安装tomcat,新版solr已经集成jetty
Solr最新版下载地址 http://mirror.bit.edu.cn/apache/lucene/solr/
#wget http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/solr-5.3.1.tgz

解压压缩包
#tar zxf solr-5.3.1.tgz

创建应用程序和数据目录
#mkdir -p /data/solr /usr/local/solr

创建运行solr的用户并赋权
#groupadd solr
#useradd -g solr solr
#chown -R solr.solr /data/solr /usr/local/solr

安装solr服务
#/usr/solr-5.3.1/bin/install_solr_service.sh /usr/solr-5.3.1.tgz -d /data/solr -i /usr/local/solr

如果没有安装jdk



安装正常


【状态】
#/usr/local/solr/solr/bin/solr status



solr命令用法
定位到solr应用程序目录  
# cd /usr/local/solr/solr
 
查看solr命令选项
# ./bin/solr

--------------
Usage: solr COMMAND OPTIONS
       where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete


  Standalone server example (start Solr running in the background on port 8984):


    ./solr start -p 8984


  SolrCloud example (start Solr running in SolrCloud mode using localhost:2181 to connect to ZooKeeper, with 1g max heap size and remote Java debug options enabled):


    ./solr start -c -m 1g -z localhost:2181 -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"


Pass -help after any COMMAND to see command-specific usage information,
  such as:    ./solr start -help or ./solr stop -help
-----------------------

【启动】
#/usr/local/solr/solr/bin/solr start -help
#/usr/local/solr/solr/bin/solr create -help
【重启】才可以新的索引配置文件生效   重启可以解决CPU占比很高的问题
#/usr/local/solr/solr/bin/solr restart
#/usr/local/solr/solr/bin/solr stop
#crontab -l
#crontab -e
10 3 * * * root /usr/local/solr/solr/bin/solr restart


安装solr服务脚本用法
运行安装脚本
# /usr/solr-5.3.1/bin/install_solr_service.sh


【创建集合】
在这个部分,我们创建一个简单的Solr集合。
Solr可以有多个集合,但在这个示例,我们只使用一个。使用如下命令,创建一个新的集合。我们以solr用户运行以避免任何权限错误。
# su - solr -c "/usr/local/solr/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"


在这个命令中,gettingstarted是集合的名字,-n指定配置集合。Solr默认提供了3个配置集合。这里我们使用的是schemaless,意思是可以提供任意名字的任意列,类型将会被猜测。


防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8983 -j ACCEPT


http://192.168.1.197:8983/solr



http://192.168.1.197:8983/solr/#/gettingstarted/query




【删除核心】
#su - solr -c "/usr/local/solr/solr/bin/solr delete -c collection2"

【创建核心】

#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection1 -n data_driven_schema_configs"
#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection2 -n data_driven_schema_configs"



----------------------

【配置数据库】


1.进入你的core(如collection1),新建一个目录lib,拷贝mysql-connector-java-5.1.14.jar到新建的lib目录中。


2.从solr的解压文件目录中找到“/example/example-DIH/solr/db/conf”下的db-data-config.xml文件到你的core(如collection1)conf目录下,并更名为data-config.xml。


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


4.data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.197:3306/test" user="root" password="123456"/><document>
    <entity name="user" query="select * from user">
          <field column="id" name="id" />
         <field column="name" name="name" />
         <field column="password" name="password" />
     </entity>
 </document>
</dataConfig> 
[Core Admin点Reload]


5.
注意5.3managed-schema就代替之前的schema

schema brower可以查看schema


5.拷贝jar
Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler' 
编译的Solr,不会把data import handler的jar文件包含到war文件里面去的。 
解决方法: 
在编译好的Solr文件夹里,我的是/usr/local/solr/solr-5.3.1/dist,找到solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar,
复制到jetty里,也就是前面建立的lib目录。然后重新reload,Solr就没有问题了




6.dataimport
这时候dataimport才有界面




7.【连接sqlserver】注意不支持域名,必须转换为IP
<dataSource type="JdbcDataSource"    
                  driver="net.sourceforge.jtds.jdbc.Driver"    
                  url="jdbc:jtds:sqlserver://211.152.35.122:49151;DatabaseName=YuanBoWebDB;"    
                  user="panqingqiang"    
                  password="514d1b0bfe6432841ac5a38cc7bfe22b"/>


jTDS驱动兼容性问题 
Java连接SQL Server 2000数据库时,有两种方法:


(1)通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar。但是Microsoft官网上已经找不到这些驱动,其提供的sqljdbc.jar和sqljdbc4.jar并不支持SQL Server 2000。


驱动程序名称:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname)
数据库连接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url)




(2)通过jTDS驱动连接。下载地址:http://sourceforge.net/projects/jtds/files/jtds/


驱动程序名称:net.sourceforge.jtds.jdbc.Driver(即下面的classforname)
数据库连接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url)


http://www.cnblogs.com/snake-hand/archive/2013/06/18/3143159.html




8.【查询】
http://192.168.1.197:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5
http://121.43.153.80:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5


-----
9.【分词】
默认Solr提供的分词组件对中文的支持是不友好的,比如:“VIM比作是编辑器之神”这个句子在索引的的时候,选择FieldType为”text_general”作为分词依据时,分词效果是:它把每一个词都分开了,可以想象如果一篇文章这样分词的搜索的体验效果非常差。
能够和Solr集成的中文分词组件有很多,比如:mmseg4j、IkAnalyzer、ICTCLAS等等。各有各的特点。
作者github
https://github.com/chenlb/mmseg4j-solr
上的分享链接,可靠
http://pan.baidu.com/s/1dD7qMFf
mmseg4j-solr-2.3.0.jar
mmseg4j-core-1.10.0.jar


<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
</analyzer>
</fieldtype>
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
</analyzer>
</fieldtype>
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/custom/path/to/my_dic" />
</analyzer>
</fieldtype>


TS_Address: '上海大酒店'  这个分词,居然""不会分词





http://www.tuicool.com/articles/67BFFz
68.罐头不如果汁营养丰富,分别在ik和mmseg下比较分词的差异




10.【注意事项】
Solr使用注意事项:
1:连接字符串要用IP,不能使用域名。
<dataSource type="JdbcDataSource"    
                  driver="net.sourceforge.jtds.jdbc.Driver"    
                  url="jdbc:jtds:sqlserver://112.124.235.156:3499;DatabaseName=yuanbodb;"
          


2:需要设置jetty服务器的内存大小
<init-param>
      <param-name>maxCacheSize</param-name>
      <param-value>1024000000</param-value>
</init-param>
默认是256M。


数据超过1万条会产生Java堆溢出错误
/usr/local/solr/solr-5.3.1/server/etc/ webdefault.xml
java.lang.OutOfMemoryError: Java heap space解决方法


静态html admin-extra.html
E:\VM\test_197\solr\solr-5.3.1\example\example-DIH\solr\solr\conf


如果你需要修改官方分词可以修改mmseg4j-core-1.10.0.jar里的data目录下的分词文件words.dic即可

==============================
参考:
CentOS下安装Solr5.3
http://www.centoscn.com/image-text/install/2015/0918/6190.html


linux集群系列(三):Solr全文搜索服务器部署(Solr-5.2.1)
http://blog.csdn.net/jeffsmish/article/details/46533255


适用于 SQL Server 的 Microsoft JDBC Drivers 4.2、4.1 和 4.0
https://www.microsoft.com/zh-CN/download/details.aspx?id=11774
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=11774


Solr之搭建Solr5.2.1服务并从Mysql上导入数据
http://www.itnose.net/news/157/6310328


solr主从部署
http://my.oschina.net/gaowm/blog/349334


solr连接数据库配置
http://www.cnblogs.com/madyina/p/4133908.html


[solr] - 数据库导入 
http://www.cnblogs.com/HD/p/3981677.html
[solr] - 索引数据删除
http://www.cnblogs.com/HD/p/3981716.html


从mysql数据库中导入数据到solr4.5
http://blog.csdn.net/zhangyaoming2004/article/details/44804987


全文检索引擎Solr系列——整合中文分词组件mmseg4j
http://www.importnew.com/12860.html


chenlb/mmseg4j-solr 
https://github.com/chenlb/mmseg4j-solr


solr中mmseg4j自定义词库配置
http://blog.csdn.net/alen1985/article/details/8501021


Solr4.7.0中整合中文分词mmseg4j-1.9.1 
http://josh-persistence.iteye.com/blog/2050054?utm_source=tuicool&utm_medium=referral


solr4.7中文分词器(ik-analyzer)配置 
http://blog.csdn.net/clj198606061111/article/details/21289897#

相关文章:

php字符串替换多余逗号_PHP字符过滤函数去除字符串最后一个逗号(rtrim)

首先分别解释下,trim过滤字符串两端,rtrim过滤字符串尾部,chop()ltrim过滤字符串首部.过滤字符串中键的咚咚就只能用str_replace咯.举个例子说明下,PHP代码$str 123,333,234,;echo rtrim($str, ,);rtrim实例代码2$text "\t\tThese are a few words :) ... ";$trim…

TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了

自PyTorch出道以来&#xff0c;不断有人表示&#xff0c;发现了这样的趋势&#xff1a; “学术圈正在慢慢地抛弃TensorFlow&#xff0c;转投PyTorch。” 如今&#xff0c;PyTorch 1.0发布&#xff0c;ICLR 2019也才截稿不久&#xff0c;又是讨论这个问题的好时节。 Reddit上面&…

php的hashmap,php如何实现hashmap

php实现hashmap的方法&#xff1a;主要方法参照JAVA的HASHMAP实现的Class HashMap{var $H_table;public function __construct() {$this->H_table array ();}public function put($key, $value) {if (!array_key_exists($key, $this->H_table)) {$this->H_table[$key…

Dispatcher与UI线程交互

1 this.chart2.Dispatcher.BeginInvoke(new Action(() > 2 { 3 this.chart2.SetData("Series1", lxs, lys, lzs); 4 })); 转载于:https://www.cnblogs.com/ants_double/p/5359476.html

Linux防火墙限制指定端口只能由指定IP访问

需要对redis的端口做限制&#xff0c;只能让公司内指定IP的机器访问-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACC…

Kubernetes基于Metrics Server的HPA

Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境&#xff1a; kubeadm安装的kubernetes1.11Horizontal Pod Autoscaler&#xff08;HPA&#xff0c;Pod水平自动伸缩&#xff09;&#xff0c;根据资源利用率或者自定义指标自动调整replicati…

Java判断文本文件编码格式以及读取

如果不是约定好的&#xff0c;要想解析txt文件就需要知道文件编码类型&#xff0c;由于文件编码类型众多&#xff0c;例如UTF-8&#xff0c;GBK&#xff0c;UTF-16,GB2312等等。其实有简单的办法&#xff0c;只需要这样就可以了String fileEncodeEncodingDetect.getJavaEncode(…

php 运维系统开发,PHP开发运维管理系统笔记

开发运维管理系统采用ThinkPHP框架mysql进行开发.框架配置return array(//‘配置项‘>‘配置值‘‘SHOW_PAGE_TRACE‘ > true,//允许访问的控制器‘MODULE_ALLOW_LIST‘ > array(‘Home‘),//默认控制器‘DEFAULT_MODULE‘ > ‘Home‘,//URL模式‘URL_MODEL‘ >…

[android]am自动化测试框架(原创)

在linux环境该目录下需要一个AndroidManifest.xml文件 需要一个python脚本就可以完成&#xff0c;功能点&#xff0c;打开某个package的所有activity并截图保存 import os import logging file open("AndroidManifest.xml") _adb_startActivity"adb shell am s…

Dubbo 整合 Pinpoint 做分布式服务请求跟踪

在使用Dubbo进行服务化或者整合应用后&#xff0c;假设某个服务后台日志显示有异常&#xff0c;这个服务又被多个应用调用的情况下&#xff0c;我们通常很难判断是哪个应用调用的&#xff0c;问题的起因是什么&#xff0c;因此我们需要一套分布式跟踪系统来快速定位问题&#x…

Memcached安装使用和源码调试

memcached官网&#xff1a;http://memcached.org/一.安装下载 # wget http://www.memcached.org/files/memcached-1.4.25.tar.gz解压 # tar xzvf memcached-1.4.25.tar.gz #cd memcached-1.4.25配置 #./configure --prefix/usr/local/memcached --with-libevent/usr 注意这里选…

上下或左右无缝滚动

文字或图片实现 向上 无缝滚动<div id"colee" style"overflow:hidden;height:80px;"><div id"colee1"><li><a href"/">文字或图片实现向上无缝滚动</a></li><li><a href"/"&g…

java老师拿钥匙,从Java中的NavigableMap获取第一把钥匙

要使用Java显示NavigableMap中的第一个键&#xff0c;请使用firstKey()方法。让我们首先创建NavigableMap-NavigableMap n new TreeMap();n.put("A", 498);n.put("B", 389);n.put("C", 868);n.put("D", 988);n.put("E", 68…

iphone X系列设配屏幕适配

2019独角兽企业重金招聘Python工程师标准>>> 截止目前&#xff0c;苹果所有刘海系列的设备屏幕数据如下&#xff1a; iPhone X 、iPhone XS&#xff1a; 5.8英寸&#xff0c; 375pt * 812pt(3x)&#xff0c;启动图1125px * 2436pxiPhone XR&#xff1a; 6.1英寸&…

Oracle官方教程之Fork/Join

原文链接&#xff0c;译文链接&#xff0c;译者&#xff1a;Zach&#xff0c;校对&#xff1a;郑旭东 fork/join框架是ExecutorService接口的一种具体实现&#xff0c;目的是为了帮助你更好地利用多处理器带来的好处。它是为那些能够被递归地拆解成子任务的工作类型量身设计的。…

《Java: The Complete Reference》等书读书笔记

春节期间读了下《Java: The Complete Reference》发现这本书写的深入浅出&#xff0c;我想一个问题&#xff0c;书中很多内容我们也知道&#xff0c;但是为什么我们就写不出这样一本书&#xff0c;这么全面&#xff0c;这么系统&#xff0c;这么简单易懂。不得不佩服Herbert Sc…

php upload ctf,强网杯CTF防御赛ez_upload Writeup

这是强网杯拟态防御线下赛遇到的web题目&#xff0c;本来是不打算分享Writeup的&#xff0c;但是由于问的人很多&#xff0c;于是这里分享给大家。ez_upload这题算是非常经典的堆叠black trick的题目&#xff0c;算是比较典型的ctf式题目(虽然现在大家都很抵制这样的题目)&…

Oracle 表空间扩容

2019独角兽企业重金招聘Python工程师标准>>> 1、查询当前表空间使用情况 col FILE_NAME format a50; col SPACE_NAME format a15; select b.file_name file_name,b.tablespace_name space_name, b.bytes/1024/1024 munM,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 …

PHP网站首页打不开的原因讲起

最近有个网站首页打不开&#xff0c;偶尔报504错误&#xff0c;如图所示&#xff0c;这是nginx直接返回的。今天下午16:00多又出现了&#xff0c;看了下阿里云数据库连接&#xff0c;其实在晚上2:00也出现了一次。这个图是后来问题已经解决了获取的&#xff0c;数据库连接的请求…

前端资源整理 - 订阅、工具等

取自 我的GITHUB 的 fe-store-house repo&#xff0c;欢迎 PR&#xff0c;欢迎 STAR。原 repo 不定期更新&#xff0c;此文可能断更。断更了一年多&#xff0c;重新更新一下&#xff0c;似乎 sfgg 的文章渲染中 gfm table 解析有问题。最新更新时间 2017-11-02。前端资源 中文 …

mysql和mariadb可以同时使用吗,MariaDB与MySQL在一台服务器同时运行

[rootHE3 ~]#groupaddmariadb-g 513[rootHE3 ~]#useradd -u 513-gmariadb-s /sbin/nologin -d /home/mariadbmariadb从MariaDB官网下载二进制安装包至/root目录&#xff0c;本文采用的是目前最新稳定版mariadb-10.1.16[rootHE3 ~]# tar xvf mariadb-10.1.16-linux-x86_64.tar.g…

http请求与响应

一、请求格式 二、响应格式 转载于:https://www.cnblogs.com/believepd/p/10470824.html

Linux环境安装phpredis扩展

php访问redis需要安装phpredis扩展&#xff0c;phpredis是用纯C语言写的。phpredis下载地址 https://github.com/phpredis/phpredis 最新的版本是phpredis-develop.zip&#xff0c;我们选择的上一个稳定版2.2.7# wget https://github.com/nicolasff/phpredis/archive/2.2.7.tar…

IO流(文件的读写)---本文的正确性有待您验证。

2019独角兽企业重金招聘Python工程师标准>>> JAVA的I/O介绍。<<疯狂JAVA编程>>第15章有详细介绍&#xff0c;如下&#xff1a; http://www.cnblogs.com/lijunamneg/archive/2013/03/22/2975087.html import java.io.FileNotFoundException;import java.…

创建图像 php,详解php创建图像具体步骤

php 的图像处理在验证码是最常见的&#xff0c;下面说下使用php创建图像的具体步骤。简要说明&#xff1a;PHP 并不仅限于创建 HTML 输出&#xff0c; 它也可以创建和处理包括&#xff0c;&#xff0c;&#xff0c;以及在内的多种格式的图像。 更加方便的是&#xff0c;PHP 可以…

Java语法基础-序列化

33&#xff0e; Java序列化中如果有些字段不想进行序列化&#xff0c;怎么办&#xff1f; 答&#xff1a;对于不想进行序列化的变量&#xff0c;使用transient关键字修饰。 transient关键字的作用是&#xff1a;阻止实例中那些用此关键字修饰的的变量序列化&#xff1b;当对象被…

Spring AOP与IOC

Spring AOP实现日志服务pom.xml需要的jar <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version> </dependency> <dependency><groupId>org.springfr…

matlab求解外弹道,基于MATLAB∕Simulink的通用质点外弹道程序设计.pdf

2017.01 设计与研发基于 MATLAB/Simulink 的通用质点外弹道程序设计崔 瀚(沈阳工学院兵器类虚拟仿真实验教学中心, 辽宁抚顺 ,113122 )摘要&#xff1a;本文以弹丸质点外弹道学为研究对象&#xff0c;通过分析以时间为 自变量的质点外弹道方程组&#xff0c;借助 MATLAB/Simuli…

深入Java虚拟机读书笔记[10:20]

第十章 栈和局部变量操作 第十一章 类型转换 第十二章 整数运算 第十三章 逻辑运算 第十四章 浮点运算 第十五章 对象和数组 第十六章 控制流 第十七章 异常 以上一些是操作码相关的内容&#xff0c; 第十八章 finally子句 微型子例程 字节码中的finally子句表现的很像微型子例…

docker Rails Permission denied @ dir_s_mkdir

sudo chmod 777 -R public转载于:https://www.cnblogs.com/znsongshu/p/9777543.html