You are not logged in.

  • Login

1

Friday, February 11th 2011, 6:45am

Apache Solr installieren

Da ich es nach einer Neuinstallation richtig machen will, wäre ich sehr froh, die Installation des Apache Solr genauestens beschrieben zu bekommen. Viele der Tutorials, die es im Web schon gibt, funktionieren bei mir nicht bzw. der Solr-Server bringt danach nur Fehlerauswürfe, die ich so nicht finden kann.

Ich wäre über jede Hilfe also dankbar!

2

Saturday, February 12th 2011, 3:06pm

Hi,
mit welchem Webserver hast du es denn versucht?
Ich betreibe Solr im Moment mit Jetty, da war die Installation denkbar einfach, weil Jetty mitgeliefert wird.

Konkret musste ich nur die Zip Datei herunterladen und den Webserver aus dem example Ordner mit java -jar start.jar starten.
Um Solr konkret für deine Anwendung zu optimieren, musst du dann natürlich noch die schema.xml ändern.
Ich nutze Solr zusammen mit Nutch, und habe die Nutch schema.xml einfach nach Solr kopiert.

Lg

3

Saturday, February 12th 2011, 3:22pm

Und somit läuft dann auch die Solr Suche, also deine Erweiterung im WCF? ;) Das möchte ich nämlich.
Habe es schon mit Jetty versucht (siehe unserer anderes Thema) und auch mit Tomcat, beides wollte nicht so recht.

Befindet sich die schema.xml von Nutch auch bei dem Download oder muss man sich die woanders besorgen?

4

Saturday, February 12th 2011, 4:56pm

Mein Solr Plugin geht von folgenden Spalteninformationen aus:

PHP Quellcode

1
2
3
4
5
6
7
8
9
$doc = new Apache_Solr_Document();
$doc->id = '...';
$doc->boost = '...';
$doc->site = '...';
$doc->url = '...';
$doc->content = '...';
$doc->title = '...';
$doc->tstamp = '...';
$doc->type = '...';


Folgendes Solr Schema nutze ich dazu: http://trac.easy-coding.de/trac/wcf/brow…chema_nutch.xml.

Außerdem nutze ich den folgenden Request Handler, der fürs Scoring zuständig ist

XML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<requestHandler name="/nutch" class="solr.SearchHandler">
	<lst name="defaults">
		<str name="defType">dismax</str>
		<str name="echoParams">explicit</str>
		<float name="tie">0.01</float>
		<str name="qf">content^0.5 anchor^1.0 title^1.2</str>
		<str name="pf">content^0.5 anchor^1.5 title^1.2 site^1.5</str>
		<str name="fl">url</str>
		<str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
		<int name="ps">100</int>
		<bool name="hl">true</bool>
		<int name="hl.fragsize">800</int>
		<str name="q.alt">*:*</str>
		<str name="hl.fl">title url content</str>
		<str name="f.title.hl.fragsize">0</str>
		<str name="f.title.hl.alternateField">title</str>
		<str name="f.url.hl.fragsize">0</str>
		<str name="f.url.hl.alternateField">url</str>
		<str name="f.content.hl.fragmenter">regex</str>
	</lst>
  </requestHandler>


Dieser gehört in die solr-config und ist hier zu finden: http://trac.easy-coding.de/trac/wcf/brow…onfig_nutch.xml

Langfristig plane ich natürlich die Solr Spalten mit dem ACP abzubilden.

Lg

5

Saturday, February 12th 2011, 5:48pm

Okay, danke. Aber ich verstehe noch nicht was ich mit den Spalteninformationen machen muss ;)
Kommt dieser Code auch irgendwohin?

6

Sunday, February 13th 2011, 2:44pm

Nein, die waren nur als Information gedacht. Die habe ich im Plugin so verbaut.
Du benötigst nur schema und Request Handler.
Lg

7

Monday, February 14th 2011, 12:23pm

Okay, habe das bei mir so gemacht und der Start funktionierte auch, habe aber nun beim Suchen im WCF dennoch diese Fehlermeldung:

Source code

1
exception 'Exception' with message '"404" Status: Not Found' in /var/customers/webs/KittBlog/private/wcf/lib/data/solr/Service.php:334 Stack trace: #0 /var/customers/webs/KittBlog/private/wcf/lib/data/solr/Service.php(964): Apache_Solr_Service->_sendRawGet('http://78.47.18...') #1 /var/customers/webs/KittBlog/private/lib/page/SolrSearchPage.class.php(79): Apache_Solr_Service->search('test', 0, 20) #2 /var/customers/webs/KittBlog/private/wcf/lib/page/SearchResultPage.class.php(86): SolrSearchPage->readSearch() #3 /var/customers/webs/KittBlog/private/wcf/lib/page/AbstractPage.class.php(46): SearchResultPage->show() #4 /var/customers/webs/KittBlog/private/wcf/lib/page/SearchResultPage.class.php(38): AbstractPage->__construct() #5 /var/customers/webs/KittBlog/private/lib/page/SolrSearchPage.class.php(20): SearchResultPage->__construct(0) #6 /var/customers/webs/KittBlog/private/wcf/lib/util/RequestHandler.class.php(64): SolrSearchPage->__construct() #7 /var/customers/webs/KittBlog/private/wcf/lib/util/RequestHandler.class.php(92): RequestHandler->__construct('SolrSearch', Array, 'page') #8 /var/customers/webs/KittBlog/private/index.php(8): RequestHandler::handle(Array) #9 {main}
Im ACP habe ich als Server diesen angegeben: http://78.47.181.134:8983/solr/ und als Servlet nutch gelassen. Warum ich aber dennoch einen 404 Fehler bekomme, weiß ich nicht...

8

Wednesday, February 16th 2011, 7:35pm

Deine IP ist für mich nicht erreichbar. Ist der Pfad falsch oder nur für mich nicht erreichbar?

Hast du es mal unabhängig vom Plugin mit nutch als RequestHandler ausprobiert?
Also http://78.47.181.134:8983/solr/nutch?q=solr in deinem Fall.

9

Thursday, February 17th 2011, 7:55pm

Habe es zwar eigentlich so gemacht, wie du es oben geschrieben hast, aber dennoch bleibt der RequestHandler select. Habe das nun eingetragen und bekomme nun einen neuen Fehler bei der Suche:

Source code

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
Fatal error: PHP notice in file /var/customers/webs/KittBlog/private/wcf/templates/compiled/108_9_1_solr.php (85): Undefined index: additionalPagesParameterString

Information:

error message: PHP notice in file /var/customers/webs/KittBlog/private/wcf/templates/compiled/108_9_1_solr.php (85): Undefined index: additionalPagesParameterString
error code: 0
file: /var/customers/webs/KittBlog/private/wcf/lib/system/WCF.class.php (281)
php version: 5.2.6-1+lenny9
wcf version: 1.1.4 (Tempest)
date: Thu, 17 Feb 2011 18:51:31 +0000
request: /index.php?page=SolrSearch&q=test
referer: http://pr.kittblog.de/
Stacktrace:

#0 /var/customers/webs/KittBlog/private/wcf/templates/compiled/108_9_1_solr.php(85): WCF::handleError(8, 'Undefined index...', '/var/customers/...', 85, Array)
#1 /var/customers/webs/KittBlog/private/wcf/lib/system/template/Template.class.php(267): include('/var/customers/...')
#2 /var/customers/webs/KittBlog/private/wcf/lib/page/AbstractPage.class.php(100): Template->display('solr')
#3 /var/customers/webs/KittBlog/private/wcf/lib/page/SearchResultPage.class.php(88): AbstractPage->show()
#4 /var/customers/webs/KittBlog/private/wcf/lib/page/AbstractPage.class.php(46): SearchResultPage->show()
#5 /var/customers/webs/KittBlog/private/wcf/lib/page/SearchResultPage.class.php(38): AbstractPage->__construct()
#6 /var/customers/webs/KittBlog/private/lib/page/SolrSearchPage.class.php(20): SearchResultPage->__construct(0)
#7 /var/customers/webs/KittBlog/private/wcf/lib/util/RequestHandler.class.php(64): SolrSearchPage->__construct()
#8 /var/customers/webs/KittBlog/private/wcf/lib/util/RequestHandler.class.php(92): RequestHandler->__construct('SolrSearch', Array, 'page')
#9 /var/customers/webs/KittBlog/private/index.php(8): RequestHandler::handle(Array)
#10 {main}
Da ich den Server nur temporär gestartet habe, ist er auch nur dann erreichbar, wenn ich das entsprechende SSH-Fenster noch offen habe ;) Du hast nicht zufällig ein Script für /etc/init.d?

Wenn ich dann übrigens etwas suche, erscheinen im SSH-Fenster diese Zeilen:

Source code

1
2
17.02.2011 18:52:48 org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/select params={start=0&q=firefox&json.nl=map&wt=json&version=1.2&rows=20} hits=0 status=0 QTime=1
Falls das etwas hilft. Den Suchindex kann ich im Übrigen immer noch nicht aufrufen im ACP des WCFs. Muss ich davor noch etwas schreiben, die Anzeigen aktualisieren oder irgendetwas anderes?

10

Thursday, February 17th 2011, 11:13pm

Versuch bitte erstmal Solr ohne das WCF Plugin zum laufen zu bekommen. Dokumente anlegen, Suchen, ...
Ich empfehle dazu den http://code.google.com/p/solr-php-client/
Lg

11

Saturday, February 19th 2011, 8:14pm

Habe es nun nach dem Tutorial gemacht von hier: http://lucene.apache.org/solr/tutorial.html
Egal ob ich dann über den Solr Admin suche oder über den SolrPHPClient, es funktioniert immer ;)
Die indexierte Datei kann er finden.

12

Sunday, February 27th 2011, 4:59pm

Naja das solr Tutorial beinhaltet ja nicht das Ändern des Schemas. Hast du es denn anschließend das Schema und den Request Handler wie oben geschildert geändert?

13

Thursday, March 3rd 2011, 5:55pm

Die Dateien habe ich mit dem Inhalt erstellt, wie du es oben beschrieben hast, allerdings weiß ich nicht, wie ich es so hinbekomme, dass solr diese auch nutzt...

Social bookmarks