This repository has been archived by the owner on Jun 14, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolr_multicore_install_v4.x.sh
158 lines (130 loc) · 5.19 KB
/
solr_multicore_install_v4.x.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/bash
# -*- coding: UTF8 -*-
##
# Drupal-friendly, multi-core Apache Solr & Tika installation script
#
# Prerequisites : a working drupal install with module apachesolr downloaded
#
# NB : for a Tomcat-based multi-core installation,
# @see http://www.lullabot.com/blog/article/installing-solr-use-drupal
#
# This method by Jesper Kristensen does not require tomcat
# @see http://linuxdev.dk/articles/apache-solr-multicore-drupal-7
# @author Jesper Kristensen - http://drupal.org/user/697210
#
# Tested @ 2013/09/19 15:43:06 on Debian 6 "Squeeze", Drupal 7.23, apachesolr-7.x-1.4
# Tested @ 2013/09/19 17:37:03 on Debian 7 "Wheezy", Drupal 7.23, apachesolr-7.x-1.4 -- note : on Wheezy, we may replace "openjdk-6-jdk" with "openjdk-7-jdk"
#
# Variables (edit as needed)
# @todo implement arguments - as in /usr/share/doc/bash-doc/examples/functions/getoptx.bash of package bash-doc
DRUPAL_SITE_PATH="/var/www/my-website"
TIKA_JAR_PATH="/usr/local/share"
APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH="/var/www/my-website/sites/all/modules/contrib/apachesolr/solr-conf/solr-4.x"
DEFAULT_CORE_NAME="my-website"
#-----------------------------------------
# Java
# For Debian 6 "Squeeze"
#aptitude install openjdk-6-jdk -y
# For Debian 7 "Wheezy"
aptitude install openjdk-7-jdk -y
#-----------------------------------------
# Tika
# Get latest version + closest mirror
# @see http://www.apache.org/dyn/closer.cgi/tika
cd ~
wget http://mir2.ovh.net/ftp.apache.org/dist/tika/tika-app-1.4.jar
mv tika-app-1.4.jar $TIKA_JAR_PATH/
chmod +x $TIKA_JAR_PATH/tika-app-1.4.jar
#-----------------------------------------
# Solr
# Get latest version
# @see http://www.apache.org/dyn/closer.cgi/lucene/solr/4.4.0
cd ~
wget http://mir2.ovh.net/ftp.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz
cp solr-4.4.0.tgz /opt
cd /opt
tar -zxvf solr-4.4.0.tgz
rm solr-4.4.0.tgz
mv /opt/solr-4.4.0/example /opt/solr-4.4.0/drupal
# Schema definitions and configuration found in the apache solr drupal module
cd /opt/solr-4.4.0/drupal/solr/collection1/conf
mv protwords.txt protwords.txt.bak
mv schema.xml schema.xml.bak
mv solrconfig.xml solrconfig.xml.bak
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/protwords.txt /opt/solr-4.4.0/drupal/solr/collection1/conf
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/schema.xml /opt/solr-4.4.0/drupal/solr/collection1/conf
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/solrconfig.xml /opt/solr-4.4.0/drupal/solr/collection1/conf
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/solrconfig_extra.xml /opt/solr-4.4.0/drupal/solr/collection1/conf
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/schema_extra_types.xml /opt/solr-4.4.0/drupal/solr/collection1/conf
cp $APACHESOLR_DRUPAL_MODULE_SOLR_CONF_PATH/schema_extra_fields.xml /opt/solr-4.4.0/drupal/solr/collection1/conf
# Configure Solr to run multicore
cd /opt/solr-4.4.0/drupal
cp multicore/solr.xml solr/
# Create a folder for each index
mkdir solr/$DEFAULT_CORE_NAME
cp -rf solr/collection1/conf/ solr/$DEFAULT_CORE_NAME
# Edit solr.xml accordingly
mv /opt/solr-4.4.0/drupal/solr/solr.xml /opt/solr-4.4.0/drupal/solr/solr.xml.bak
echo -n "<?xml version='1.0' encoding='UTF-8' ?>
<solr persistent='false'>
<cores adminPath='/admin/cores' host='\${host:}' hostPort='\${jetty.port:8983}' hostContext='\${hostContext:solr}'>
<core name=\"$DEFAULT_CORE_NAME\" instanceDir=\"$DEFAULT_CORE_NAME\" />
</cores>
</solr>" > /opt/solr-4.4.0/drupal/solr/solr.xml
#-----------------------------------------
# Automatically start Solr
# (run-script)
# Note : this doesn't seem to auto-start when server (re)boots
# -> meanwhile, I start it manually with either :
# (no log)
#nohup service apachesolr restart >& /dev/null &
# or (with default log)
#nohup service apachesolr restart
echo -n '#!/bin/sh
### BEGIN INIT INFO
# Provides: apachesolr
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop apache sole search framework
### END INIT INFO
SOLR_DIR="/opt/solr-4.4.0/drupal/"
JAVA_OPTIONS="-Xmx1024m -DSTOP.PORT=8079 -DSTOP.KEY=stopkey -jar start.jar"
LOG_FILE="/var/log/solr.log"
JAVA="/usr/bin/java"
case $1 in
start)
echo "Starting Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS 2> $LOG_FILE &
;;
stop)
echo "Stopping Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS --stop
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac' > /etc/init.d/apachesolr
chmod 755 /etc/init.d/apachesolr
/etc/init.d/apachesolr start
# Need "sysv-rc-conf" to edit run-levels
aptitude install sysv-rc-conf -y
sysv-rc-conf --level 2345 apachesolr on
#-----------------------------------------
# Drupal-specific
cd $DRUPAL_SITE_PATH
drush en apachesolr apachesolr_search search -y
drush solr-set-env-url "http://localhost:8983/solr/$DEFAULT_CORE_NAME"
# Building initial index
#drush solr-mark-all
#drush solr-index