Verarbeiten Sie den Index in Python mit dem ScriptUpdateProcessor von Solr vor

Referenz: http://www.rondhuit.com/scriptupdateprocessor.html

Der Artikel handelt vom Fall von Javascript, Hier werde ich vorstellen, wie Felder mit jython bei Python registriert werden. Die Umgebung ist übrigens CentOS7 und ich verwende Solr6 und Manifold CF2.4.

** 1. Fügen Sie updateRequestProcessorChain zu .solrconfig.xml hinzu **

solrconfig.xml


...
<updateRequestProcessorChain name="script">
  <processor class="solr.StatelessScriptUpdateProcessorFactory">
    <str name="script">update-script.py</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
...

Es scheint, dass sich solrconfig.xml an der folgenden Stelle nach solr5 befindet. var/solr/data/<corename>/conf/solrconfig.xml

** 2. Geben Sie die oben in requestHandler definierte UpdateChain an **

solrconfig.xml


...
<requestHandler name="/update" class="solr.UpdateRequestHandler">    
  <lst name="defaults">
    <str name="update.chain">script</str>
  </lst>       
</requestHandler>
...

Wenn Sie PDF oder Excel mit ManifoldCF crawlen möchten, können Sie ExtractingRequestHandler verwenden. Wenn Sie RDB crawlen möchten, müssen Sie DataImportHanlder jede der obigen Beschreibungen hinzufügen.

** 3. Platzieren Sie das Python-Skript in update-script.py ** Platzierung: var/solr/data/<corename>/conf/update-script.py

So registrieren Sie ein Feld in Python doc.setField("field_name","field_value") Schreiben. Der vom Skript zu registrierende Feldname muss vorab zu "manage_schema.xml" hinzugefügt werden. Wenn es eine Registrierung mit demselben Namen gibt, wird sie auf der traurigen Seite zugeordnet. Übrigens der Index, der bereits eingeführt wurde doc.getFieldValue("field_name") Sie können es bei bekommen. Das Skript wird bei jeder Ausführung ausgewertet, sodass Solr zum Bearbeiten nicht neu gestartet werden muss.

** 4. Jython installieren ** Verwenden Sie jython, um Python auf JavaVM auszuführen. Holen Sie sich über den Link unten

http://www.jython.org/downloads.html

Es scheint, dass Sie die Standalone-Version anstelle der Installer-Version benötigen. Legen Sie es so auf die Solr-Seite.

var/solr/data/<corename>/lib/jython-standalone-2.X.X.jar

** 5. Beim Verknüpfen mit DB ** Ich musste die Daten von postgresDB abrufen, daher benötige ich einen JDBC, um von Python aus auf die Datenbank zuzugreifen.

Holen Sie sich den JDBC, der den JDK- und Postegres-Versionen entspricht, von https://jdbc.postgresql.org/download.html

Platziert in var / sorr / data / <corename> /lib/postgresql-9.X-XXXX.jar </ code>

Beschreibung Beispiel für Importanweisung und Verbindung

update.script


from com.ziclix.python.sql import zxJDBC

DB_URL = "jdbc:postgresql://yourpostgreshost:port/dbname"
DB_USER = "postgres"
DB_PASS = "password"
DB_DRIVER = "org.postgresql.Driver"
connection = zxJDBC.connect(DB_URL, DB_USER, DB_PASS, DB_DRIVER)

Platziere es so.

** 6. Beim Verweisen auf eine externe Bibliothek **

Wenn Sie eine externe Bibliothek importieren möchten, entpacken Sie die eigenständige jython-Version von jar und Externe Bibliothek Es ist in Ordnung, wenn Sie es an einem geeigneten Ort (normalerweise / Lib) ablegen und es wieder zu einem Glas machen. Es kann einen besseren Weg geben. .. ..

Das ist es. Führen Sie den Job mit Manifoldcf aus, um zu sehen. Wenn das Python-Skript nicht richtig funktioniert, ist es etwas ärgerlich, aber Sie müssen möglicherweise versuchen, Fehler zu machen, während Sie das Fehlerprotokoll anzeigen.

Recommended Posts

Verarbeiten Sie den Index in Python mit dem ScriptUpdateProcessor von Solr vor
Versuchen Sie, die Kraken-API mit Python zu verwenden
Tweet mit der Twitter-API in Python
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
[AWS IoT] Registrieren Sie Dinge in AWS IoT mithilfe des AWS IoT Python SDK
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Bestimmen Sie den Schwellenwert mithilfe der P-Tile-Methode in Python
Verwenden Sie die Such-API der National Parliament Library in Python
Finde Fehler in Python
Messen Sie den BMI-Index in Python.
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
GUI-Programmierung in Python mit Appjar
Abrufen der arXiv-API in Python
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
Klicken Sie in Python auf die Sesami-API
Holen Sie sich den Desktop-Pfad in Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Holen Sie sich den Skriptpfad in Python
Verwendung globaler Variablen in Python-Funktionen
Klicken Sie auf die Web-API in Python
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Extrahieren Sie die Targz-Datei mit Python
Ich habe die Warteschlange in Python geschrieben
Berechnen Sie den Vormonat in Python
Untersuchen Sie die Klasse eines Objekts mit Python
Holen Sie sich den Desktop-Pfad in Python
Versuchen Sie es mit dem Python Cmd-Modul
Holen Sie sich den Hostnamen in Python
Handschriftliche Zeichenerkennung mit KNN in Python
Greifen Sie mit Python auf die Twitter-API zu
Versuchen Sie es mit LeapMotion mit Python
Der erste Schritt von Python Matplotlib
Suche nach Tiefenpriorität mit Stack in Python
Bei Verwendung regulärer Ausdrücke in Python
Ich habe den Stack in Python geschrieben
Beherrsche das schwache Ref-Modul in Python
GUI-Erstellung in Python mit tkinter 2
Python-Anfänger haben Hello World in 30 Sekunden mit der Mikroframework-Flasche ausprobiert
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Lernen Sie das Entwurfsmuster "Prototype" mit Python
Lernen Sie das Entwurfsmuster "Builder" mit Python
Mausbedienung mit Windows-API in Python
Laden Sie das Remote-Python-SDK mit IntelliJ
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
GUI-Erstellung in Python mit tkinter Teil 1
Überprüfen Sie das Verhalten des Zerstörers in Python
Übung, dies in Python zu verwenden (schlecht)
Lernen Sie das Designmuster "Flyweight" in Python
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Lernen Sie das Entwurfsmuster "Observer" in Python
Lernen Sie das Entwurfsmuster "Memento" mit Python
Hinter dem Flyer: Docker mit Python verwenden