2010-09-03 8 views
5

Ich denke, ich vermisse hier etwas offensichtlich. Ich muss mir vorstellen, dass viele Leute ihre Solr-Server anderen Entwicklern öffnen und nicht wollen, dass sie den Index ändern können.Running Solr im schreibgeschützten Modus

Gibt es in solrconfig.xml etwas, das den Index schreibgeschützt machen kann?

Update zur Klarstellung: Mein Ziel ist es, Solr mit einem bestehenden Lucene-Index von einer anderen Anwendung verwaltet zu verwenden. Das funktioniert ganz gut, aber ich möchte sicher sein, dass Solr niemals versucht, in diesen Index zu schreiben.

+0

Warum sagen Sie, dass "viele Leute ihre Solr-Server anderen Entwicklern öffnen"? –

+0

Nun, ich sagte, dass ich * mir vorstellen * sie tun.Angenommen, Sie haben eine Website mit viel Inhalt, verwenden Sie bereits Solr, um die Website-Suche zu steuern, und möchten, dass andere Websites Ihren Inhalt durchsuchen können. Anstatt eine eigene API bauen, könnte Solr dass macht viel einfacher ... – wynz

Antwort

2

Sie können wahrscheinlich die Zeile löschen, die Ihren solr.XmlUpdateRequestHandler in solrconfig.xml definiert.

Replikation ist eine gute Möglichkeit, schreibgeschützt einzurichten, während Indexierung durchgeführt werden kann. Richten Sie einfach einen Master mit eingeschränktem Zugriff und einen schreibgeschützten Slave ein (indem Sie Ihren XmlUpdateRequestHandler aus der Konfiguration entfernen). Der Slave wird vom Master repliziert, akzeptiert jedoch keine direkte Indexierung.

UPDATE

Ich habe gerade gelesen, dass in Solr 1.4, Sie disable component können. Ich habe es gerade auf dem/update requestHandler versucht und konnte nicht mehr indexieren.

+0

Anscheinend dass Request-Handler Auskommen wird nichts deaktivieren, da es nur als eine Überschreibung wirkt (nach http://wiki.apache.org/solr/ SolrRequestHandler). Ich denke, Sie könnten eine falsche Klasse für den/Update-Request-Handler beibehalten, aber das scheint eine schlechte Idee zu sein. – wynz

+0

danke, es ist gut zu wissen ... –

+0

sehen Sie meine Updates über Deaktivieren der Komponente –

6

Eine Solr-Instanz dem öffentlichen Internet zugänglich zu machen, ist eine schlechte Idee. Auch wenn Sie einige Komponenten entfernen können, um sie schreibgeschützt zu machen, wurde sie nicht nur mit Blick auf die Sicherheit entworfen, sondern auch als interner Dienst, genauso wie Sie kein RDBMS bereitstellen würden.

Vom Solr Security wiki page:

In erster Linie Solr nicht Sorge sich mit Sicherheit entweder auf der Dokumentebene oder die Kommunikationsebene. Es ist stark empfohlen, dass die Anwendung Server mit Solr werden Firewall solarbetrieben werden so die einzigen Clients mit Zugriff auf Solr sind Ihre eigenen. Ein Standard/example Installation von Solr ermöglicht es jedem Client mit Zugang zu ihm hinzufügen, aktualisieren und Dokumente löschen (und natürlich Suche/Lese auch), einschließlich des Zugangs zu der Solr Konfiguration und das Schema Dateien und Verwaltungs Benutzer Schnittstelle.

Auch ajax-solr, ein Solr Client für Javascript bedeutete in einem Browser ausgeführt werden, recommends talking to Solr through a proxy.

Nehmen Sie zum Beispiel guardian.co.uk: es ist bekannt, dass they use Solr for searching, aber sie baute eine API, um andere Zugriff auf ihren Inhalt zu ermöglichen. Auf diese Weise können sie define und genau was und wie sie wollen, dass Menschen nach Dingen suchen.

Sonst kann jeder Script-Kiddie eine triviale Schleife in DoS Ihre Solr-Instanz schreiben und damit Ihre Site herunterfahren.

+0

+1 gut gesagt und danke für die Links –

+0

Das sind gute Vorschläge und hoffentlich jemand Einrichten Solr für Die Produktion würde diesen Vorschlägen folgen, aber das kommt nicht wirklich zu der gestellten Frage. Ich werde die Frage bearbeiten, um meinen speziellen Anwendungsfall zu klären. – wynz

+0

@wynz: ok, es ist cool, wenn es nur für den internen Gebrauch ist. –

Verwandte Themen