YaCy <=> Solr <=> Oracle RDBMS

For YaCy users and applications in a professional environment.

YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » So Nov 18, 2012 11:39 am

Hallo,

ich suche Hilfe bei der Integration einer Oracle-DB als Backend für Solr. Ich verfolge damit keine kommerziellen Interessen, deshalb habe ich auch kein Geld für z. B. in so etwas. Kann bitte jemand ein Tut schreiben und in unser Wiki stellen? Dann haben alle etwas davon.

Ich hab da schonmal was gefunden, das scheint aber nur ein Lösungsansatz zu sein, hier werden glaube ich die Inhalte einer Oracle-DB mit Solr indexiert, mein Vorhaben ist aber umgekehrt gedacht, dass Solr den Index nicht im lokalen Dateisystem ablegt, sondern in einer Oracle-DB.

Viele Grüße

Stefan
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon Orbiter » So Nov 18, 2012 1:57 pm

Hallo Stefan,

wir haben ja einen DB-Konnektor für phpbb3 in der Klasse PhpBB3Dao welche vom Menü in ContentIntegrationPHPBB3_p.html aufgerufen wird. Das macht aber als Zwischenschritt einen Export nach Dublin Core. Man müsste die Klasse PhpBB3Dao hernehmen und generalisieren so dass man beliebige Tabellenfelder auf ein SolrInputDocument mappen kann. Das ist nicht soo schwer und eher eine Fleissarbeit. Momentan bin ich aber mit kommerziellen Anfragen noch eingedeckt. Wir brauchen mehr Entwickler! Kann denn da von den Anwendern von der Anforderung nicht vielleicht was machen?
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Do Nov 22, 2012 8:00 am

Hallo Michael,

vielen Dank. Ich glaube wenn ich mich da einarbeiten würde, würde ich es evtl. hinbekommen, aber ich denke nicht, dass ich es in der Qualität hinbekommen würde, wie wenn ihr das/du machen würdet.

Wenn dein Workload wieder etwas weniger geworden ist, würde ich es gerne bei dir in Auftrag geben. Ich zahle gut :-)
Es soll aber dann auch so in der DB abgebildet werden, wie es das YaCy-Solr-Schema normalerweise in den Solr-Datendateien ablegt.

Viele Grüße

Stefan
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Fr Jan 11, 2013 2:33 pm

Code: Alles auswählen
Usage with RDBMS

In order to use this handler, the following steps are required.

    Define a data-config.xml and specify the location this file in solrconfig.xml under DataImportHandler section
    Give connection information (if you choose to put the datasource information in solrconfig)

    Open the DataImportHandler page to verify if everything is in order http://localhost:8983/solr/dataimport
    Use full-import command to do a full import from the database and add to Solr index
    Use delta-import command to do a delta import (get new inserts/updates) and add to Solr index

Configuring DataSources

Add the tag 'dataSource' directly under the 'dataConfig' tag.

<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/dbname" user="db_username" password="db_password"/>

    The datasource configuration can also be done in solr config xml #solrconfigdatasource

    The attribute 'type' specifies the implementation class. It is optional. The default value is 'JdbcDataSource'

    The attribute 'name' can be used if there are multiple datasources used by multiple entities

    All other attributes in the <dataSource> tag are specific to the particular dataSource implementation being configured.

    See here for plugging in your own

Oracle Example

You might need to download and install the Oracle JDBC Driver in the /lib directory of your Solr installation.

<dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//hostname:port/SID" user="db_username" password="db_password"/>


Quelle

In meinem Fall muss dann der JDBC-Treiber ins Lib-Verzeichnis von YaCy, oder? DataIMPORThandler ist genau das Gegenteil von dem was ich erreichen möchte, ich will ja nicht den Inhalt einer DB indexieren, sondern die DB als Backend für Solr nutzen.
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Fr Jan 11, 2013 4:22 pm

Das ist eine Anleitung wie es realisiert werden kann, aber das ist zu hoch für mich :-(
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Sa Jan 19, 2013 4:29 pm

Die Anleitung oben ist für den Anschluss von Solr an einen MySQL-Server. Das ist auch besser so. Von Oracle bin ich mittlerweile weg, da die Lizenzkosten so hoch sind, dass ich es mir nicht leisten kann. Falls ihr es nach og. Anleitung für die Community implementieren wollt, ist die SQL-Server Lösung sowieso besser. Ich denke, dass viele Unis und wissenschaftl. Einrichtungen von so einem Feature profitieren würden.
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon Orbiter » Di Feb 05, 2013 1:12 pm

man müsste hier aber auch die Felder der DB richtig auf die Felder von YaCy mappen, was nicht so ganz einfach ist:
- wäre ein großer Zufall wenn die Bedeutung übereinstimmen würde (z.B. eine Bibliotheksdatenbank mit Dublin Core Feldern hätte chancen)
- dann muss man schauen dass alle Felder, die YaCy zum funktionieren braucht auch richtig gefüllt werden. Und das heisst auch das man da ggf. Funktionen braucht um Felder automatisch zu füllen. Und sowas ist nicht einfach generisch zu machen.
- eine schöne GUI brauchs auch... ..mit einer Formalisierung was auf was zu mappen ist.

So etwas wäre auch 'ausserhalb' von YaCy sinnvoller, weil es dann nicht nur YaCy-User nutzen könnten. Es geht ja hierbei nur um Solr und RDBMS. Man kann ja YaCy mit einem externen Solr betreiben und dort dann die DB hin übertragen, ggf. sogar mit einem einfachen Script.

In meinem CampusParty - Vortrag habe ich sogar eine klitzekleine Solr-Einführung gemacht, indem ich ein 'Hello World' für Solr vorgeführt habe:
Code: Alles auswählen
curl -OL „http://archive.apache.org/dist/lucene/solr/3.6.1/apache-solr-3.6.1.tgz“
tar xfz apache-solr-3.6.1.tgz
cd apache-solr-3.6.1/example/
java -jar start.jar
open http://localhost:8983/solr/admin/
curl 'http://localhost:8983/solr/update/json?commit=true' -H 'Content-type:application/json' -d '{"add":{"doc":{"id":"data1", "title":"Hello World"}}}'
curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @exampledocs/books.json -H 'Content-type:application/json'
curl 'http://localhost:8983/solr/select/?q=*%3A*'


Daran erkennt man wie einfach es ist, Felder von Solr mit einem Script zu füllen. Du müsstest dir da nur was drum herum stricken, was deine Datenbank ausliest und die Felder eines Solr füllt, welcher von YaCy extern angesprochen wird.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Sa Feb 16, 2013 12:41 pm

@Michael vielen Dank!!

Hab ich gemacht, d. h. ich hab ein Connector der Solr mit der DB verbindet, also diese "Vernetzung" steht. Jetzt bräuchte ich Hilfe beim Erzeugen der Datenfelder vom YaCy Solr Schema innerhalb der DB, das ist zu hoch für mich :-((
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon Orbiter » Sa Feb 23, 2013 3:05 pm

Es gibt einige Felder die man füllen sollte, andere sind optional. Das sind insgesamt schon recht viele, aber versuche die doch erst mal optional zu füllen:


## primary key of document, the URL hash, string (mandatory field)
id

## url of document, string (mandatory field)
sku

## last-modified from http header, date (mandatory field)
last_modified

## mime-type of document, string (mandatory field)
content_type

## content of title tag, text (mandatory field)
title

## id of the host, a 6-byte hash that is part of the document id (mandatory field)
host_id_s

## the md5 of the raw source (mandatory field)
md5_s

## the size of the raw source (mandatory field)
size_i

## fail reason if a page was not loaded. if the page was loaded then this field is empty, text (mandatory field)
failreason_t

## fail type if a page was not loaded. This field is either empty, 'excl' or 'fail'
failtype_s

## html status return code (i.e. "200" for ok), -1 if not loaded (see content of failreason_t for this case), int (mandatory field)
httpstatus_i

## number of unique http references; used for ranking
references_i

## depth of web page according to number of clicks from the 'main' page, which is the page that appears if only the host is entered as url
clickdepth_i

## needed (post-)processing steps on this metadata set
process_sxt


### optional but highly recommended values, part of the index distribution process

## time when resource was loaded
load_date_dt

## date until resource shall be considered as fresh
fresh_date_dt

## ids of referrer to this document
referrer_id_txt

## the name of the publisher of the document
publisher_t

## the language used in the document
language_s

## number of links to audio resources
audiolinkscount_i

## number of links to video resources
videolinkscount_i

## number of links to application resources
applinkscount_i


### optional but highly recommended values, not part of the index distribution process

## tags that are attached to crawls/index generation to separate the search result into user-defined subsets
collection_sxt

## content of author-tag, texgen
author

## content of description-tag, text
description

## content of keywords tag; words are separated by space
keywords

## character encoding, string
charset_s

## number of words in visible area, int
wordcount_i

## total number of inbound links, int
inboundlinkscount_i

## number of inbound links with nofollow tag, int
inboundlinksnofollowcount_i

## external number of inbound links, int
outboundlinkscount_i

## number of external links with nofollow tag, int
outboundlinksnofollowcount_i

## number of images, int
imagescount_i

## response time of target server in milliseconds, int
responsetime_i

## all visible text, text
text_t

## additional synonyms to the words in the text
synonyms_sxt

## h1 header
h1_txt

## h2 header
h2_txt

## h3 header
h3_txt

## h4 header
h4_txt

## h5 header
h5_txt

## h6 header
h6_txt
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: YaCy <=> Solr <=> Oracle RDBMS

Beitragvon LA_FORGE » Sa Mär 09, 2013 6:16 pm

Vielen Dank!! Genial, was ihr da gestrickt habt. Man merkt deutlich, da steckt überall ne Menge Hirnschmalz drin und viel Engagement der Entwickler!! Ich hab mir ein EBook gekauft "Oracle SQL" ich kann nämlich genauso wenig Datenbank-Schemas erstellen wie (Java)programmieren, nämlich überhaupt nicht :-( Aber das kann man ja lernen.

Aber ob ich YaCy SQL beibringen kann um als Storage Engine eine DB-Anbindung zu einem in der DB eingebetteten Solr zu verwenden glaube ich nicht :-( Evtl. kann man's ja mal mit auf die Wishlist nehmen und einen Konfigurationspunkt & -funktion "Configure a third party Solr Instance" implementieren.
LA_FORGE
 
Beiträge: 559
Registriert: Sa Okt 11, 2008 5:24 pm


Zurück zu Pro-Users

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste